2016-07-27 180 views
0

我想获取验证错误,以显示在我的应用程序中,并已遇到墙壁。Laravel验证错误显示

我有这样的尝试了一些不同的方法,这就是我把它设置当前...

我的路线是这样的:

<?php 

Route::group(['middleware' => ['web']], function() { 

    Route::get('/', [ 
     'as' => 'home', 
     'uses' => '[email protected]' 
    ]); 

    Route::post('/mailing', [ 
     'as' => 'mailing.create', 
     'uses' => '[email protected]' 
    ]); 

}); 

我的邮件控制器看起来是这样的:

class MailingController extends Controller 
{ 
    public function create(Request $request) 
    { 
     $this->validate($request, [ 
      'email' => 'required', 
     ]); 
     dd($request->email); 
    } 
} 

我的形式看起来像这样...

  <form action="{{ route('mailing.create') }}" method="post"> 

       <label for="email"> 
        Email 
        <input type="text" name="email" id="email"> 
        @if ($errors->has('email')) 
         {{ $errors->first('email') }} 
        @endif 
       </label> 

       <input type="submit"> 
       {{ csrf_field() }} 
      </form> 

当我提交一个空的表单时,它会转到MailingController中的create方法,但是没有任何反应,没有显示错误。只是形式。

真的这应该工作,可能问题可能是上面的例子对Laravel 5.1是好的,但不能在最新的5.2版本中工作?

非常感谢您的善意考虑。

回答

1

您可以在official documentation的Web中间件组默认应用看:

请记住,网络中间件组会自动由RouteServiceProvider应用于 默认的routes.php文件的文件。

如果执行

php artisan route:list 

你可以看到,中间件应用两次到网络路由器。

你要删除的组

Route::group(['middleware' => ['web']], function() { 

} 

这在一个小版本5.2已经改变,所以很可能,你有一个“作曲家更新”后,这个错误。

更多信息herehere

0

嗯,看来我得回答我的问题......在laravel 5.2路由自动成为中间件路线,以便从改变路线内...

<?php 

Route::group(['middleware' => ['web']], function() { 

    Route::get('/', [ 
     'as' => 'home', 
     'uses' => '[email protected]' 
    ]); 

    Route::post('/mailing', [ 
     'as' => 'mailing.create', 
     'uses' => '[email protected]' 
    ]); 

}); 

<?php 

    Route::get('/', [ 
     'as' => 'home', 
     'uses' => '[email protected]' 
    ]); 

    Route::post('/mailing', [ 
     'as' => 'mailing.create', 
     'uses' => '[email protected]' 
    ]); 

修复了一切。