Laravel 5.4 向验证器的错误添加一条消息

Rad*_*adi 2 php validation laravel

因此,我从应重置用户密码的表单接收数据:
旧密码: |field|
新密码:|字段|
确认密码: |字段|
如果用户的旧密码与他在第一个字段中输入的内容不匹配,我希望能够向用户显示一条消息。我不想创建一个全新的验证方法,只想在创建自己的 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');
    }
}
Run Code Online (Sandbox Code Playgroud)

所以在我看来我想要这个

@if (count($errors) > 0)
<div class="alert alert-danger">
    <ul>
        @foreach ($errors->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>
</div>
@endif
Run Code Online (Sandbox Code Playgroud)

Iva*_*ova 5

您可以在控制器中执行此操作:

$validator =  Validator::make($request->all(),[
    'oldPassword' => 'required',
    'password' => 'required|min:8|confirmed'
]);
Run Code Online (Sandbox Code Playgroud)

然后在你的之前return back();添加:

$validator->after(function($validator) {
    $validator->errors()->add('tagName', 'Error message');
});
Run Code Online (Sandbox Code Playgroud)

带着你的留言。