我正在努力学习Laveral 5.2,并且在我的routes.php中有以下内容:
Route::group(['middleware' => ['web'] ], function() {
Route::get('/', function () {
return view('welcome'); });
Route::post('/signup', [ 'uses' =>'UserController@postSignUp',
'as' => 'signup']);
Route::post('/signin', [ 'uses' => 'UserController@postSignIn',
'as' => 'signin']);
Route::get('/dashboard',['uses' =>'UserController@getDashboard',
'as' => 'dashboard' ]);
});
在我的控制器中,我有一些验证:
$this->validate( $request, [
'email' => 'required|email|unique:users',
'first_name' =>'required|max:120',
'password' => 'required|min:4'
]);
在我的登录屏幕上,我有以下内容:
@if (count($errors) > 0 )
<div class="row">
<div class="col-md-12">
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
错误数组似乎总是空的。
如果您使用的是Laravel 5.2.27及更高版本,请尝试删除web中间件。web
中间件现在自动添加到所有路由中,如果您尝试手动添加,它会导致类似于您的问题。
它已经帮助许多人解决了类似的问题。我希望它也能帮助你。
试试这个
$validator = Validator::make($request->all(), [
'email' => 'required|email|unique:users',
'first_name' =>'required|max:120',
'password' => 'required|min:4'
]);
if ($validator->fails()) {
return view('your_view_name')->withErrors($validator)->with(['val1' => $val1,......]);
}