因此,我从应重置用户密码的表单接收数据:
旧密码:|字段|
新密码:|字段|
确认密码: |字段|
如果用户的旧密码与他在第一个字段中输入的内容不匹配,我希望能够向用户显示一条消息。我不想创建一个全新的验证方法,只想在创建自己的 if() 时抛出错误。那么如何使用 Blade View 中可用的 $errors 变量来实现此目的
这是我的 Controller 方法的示例
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');
}
}
所以在 View 中我想要这个
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
最佳答案
您可以在 Controller 中执行此操作:
$validator = Validator::make($request->all(),[
'oldPassword' => 'required',
'password' => 'required|min:8|confirmed'
]);
然后在 return back();
之前添加:
$validator->after(function($validator) {
$validator->errors()->add('tagName', 'Error message');
});
附上您的留言。
关于php - Laravel 5.4 向验证器的错误添加一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43283622/