Laravel 5.4在验证器的错误中添加了一条消息

时间:2017-04-07 17:07:29

标签: php laravel validation

所以我从一个应该重置用户密码的表单中接收数据:
旧密码:|字段|
新密码:|字段|
确认密码:|字段|
如果用户的旧密码与他在第一个字段中输入的密码不匹配,我希望能够为用户显示消息。我不想制作一个全新的验证方法,只是想在我创建自己的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

1 个答案:

答案 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');
});

收到你的留言。