我知道这是一个重复的问题。这个问题有很多解决方案,但不幸的是,没有什么对我有效。我检查了-
Laravel 5.2表单验证未显示错误?
Laravel 5.2->验证错误未出现
ErrorBag在Laravel 5.2中始终为空还有更多。。。
我使用的是laval5.2.29,为了解决这些错误,我们已经在做了一些事情。在kernel.php 中
protected $middleware = [
'Illuminate'Foundation'Http'Middleware'CheckForMaintenanceMode::class,
'Illuminate'Session'Middleware'StartSession::class,
'Illuminate'View'Middleware'ShareErrorsFromSession::class
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
'App'Http'Middleware'EncryptCookies::class,
'Illuminate'Cookie'Middleware'AddQueuedCookiesToResponse::class,
'Illuminate'Session'Middleware'StartSession::class,
'Illuminate'View'Middleware'ShareErrorsFromSession::class,
'App'Http'Middleware'VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
],
];
IN Routes.php
Route::group(['middleware' => ['web']], function () {
Route::get('/','IndexController@index');
Route::get('user/','UserController@showProfile');
Route::match(["get","post"],"user/register",'UserController@register');
Route::match(["get","post"],"user/login",'UserController@login');
});
用户控制器-
$this->validate($this->Request,User::$add_user_rules);
$user_data = Input::all();
$user_data['username'] = explode('@',$user_data["email"])[0];
if(User::create($user_data)){
$this->Request->session()->flash('success', 'Your account has been successfully created. Now please check your email to activate your account.');
}else{
$this->Request->session()->flash('error', 'Oops.. Something went wrong. Please try again !');
}
return redirect("user/register");
规则在用户模型-中
public static $add_user_rules = [
'first_name' => 'required|alpha_dash',
'last_name' => 'alpha_dash',
'email' => 'required|email|unique:users',
'password' => 'required',
"cn_password" => "required|same:password",
];
最后,这是我用来显示刀片上的错误-
@if (count($errors) > 0)
<div class="alert-message error">
<div><span>Error !</span><br>
@foreach ($errors->all() as $error)
<p>{{ $error }}</p>
@endforeach
</div>
</div>
@endif
现在,这个代码中缺少什么。没有显示任何错误消息。还有一件事,如果我把路由放在中间件web
之外,一切都很完美
现在默认在Laravel最新版本5.2**中的web middleware
组中。如果您在app'Http'routes.php
文件中明确指定了此middleware
组,则应将其删除,这样可以解决您的问题。