2017-04-07 119 views
1

因此,我正在从应重置用户密码的表单接收数据:
旧密码:|字段|
新密码:|字段|
确认密码:|字段|
而且我希望能够为用户显示一条消息,如果他的旧密码与他在第一个字段中输入的不匹配。我不想做一个全新的验证方法,只是想在我使用if()的时候抛出一个错误。那么,如何实现这一目标使用$错误变量,可在我的刀片意见Laravel 5.4在验证器的错误处添加一条消息

因此,这里是

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 
认为我的控制器方法的一个例子您前

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

然后:

回答

3

您可以在控制器做到这一点,加:

$validator->after(function($validator) { 
    $validator->errors()->add('tagName', 'Error message'); 
}); 

随着你的消息。