【发布时间】:2016-07-31 11:03:32
【问题描述】:
我正在使用 laravel 5 构建一个用户日志页面,并且我使用了 validate() 函数来验证电子邮件、密码和名字字段。
用户控制器
class UserController extends Controller{
public function getDashBoard(){
return view('dashboard');
}
public function postSignUp(Request $request){
$this->validate($request,[
'email'=>'required|email|unique:users',
'first_name'=>'required|max:120',
'password'=>'required:min:4'
]);
$user=new User();
$user->email=$request['email'];;
$user->first_name=$request['first_name'];
$user->password=bcrypt($request['password']);;
$user->save();
Auth::login($user);
return redirect()->route('dashboard');
}
}
此功能正常工作,当数据无效时返回上一页。我使用以下代码在welcome.blade.php 文件中显示错误消息。
@if(count($errors)>0)
<p>Error occurred</p>
@endif
如果出现验证错误,它会返回到欢迎页面 bt 上面的错误消息不显示(当我检查时,count($errors) 始终等于 0)。这里有什么问题?
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'
]);
});
【问题讨论】:
-
你试过
@if($errors->has())而不是计算它吗? -
它也不起作用
-
$errors的类型是什么?它应该是ViewErrorBag的一个实例