2017-04-07 117 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'); 
}); 

隨着你的消息。