所以我从一个应该重置用户密码的表单中接收数据:
旧密码:|字段|
新密码:|字段|
确认密码:|字段|
如果用户的旧密码与他在第一个字段中输入的密码不匹配,我希望能够为用户显示消息。我不想制作一个全新的验证方法,只是想在我创建自己的if()时抛出错误。那么如何使用我的刀片视图中提供的$ errors变量实现此目的
所以这是我的控制器方法的一个例子
public function update(Request $request){
$this->validate($request,[
'oldPassword' => 'required',
'password' => 'required|min:8|confirmed'
]);
$user = Auth::user();
if(password_verify($request->newPass,$user->password)){
$user = User::find($user->id);
$user->password = bcrypt($request->newPass);
$user->save();
}else{
//the code for adding a new key to $errors variable
return back(); Or return redirect('path');
}
}
所以在视图中我想要这个
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
答案 0 :(得分:3)
您可以在控制器中执行此操作:
$validator = Validator::make($request->all(),[
'oldPassword' => 'required',
'password' => 'required|min:8|confirmed'
]);
然后在return back();
之前添加:
$validator->after(function($validator) {
$validator->errors()->add('tagName', 'Error message');
});
收到你的留言。