2017-04-07 8 views
1

ユーザーパスワードをリセットするフォームからデータを受信して​​います:
古いパスワード:|フィールド|
新しいパスワード:|フィールド|
パスワードの確認:|フィールド|
そして、私は彼の古いパスワードが最初のフィールドに入力したものと一致しない場合、ユーザーのためにメッセージを表示できるようにしたい。私はまったく新しい検証方法を作りたいと思うのではなく、自分でif()を作成するときにエラーを投げたいだけです。だから私は、私のブレードビューで使用可能です$エラー変数を使用してこれを達成んかだからここLaravel 5.4バリデーターのエラーにメッセージを追加

は、私はこの

@if (count($errors) > 0) 
<div class="alert alert-danger"> 
    <ul> 
     @foreach ($errors->all() as $error) 
      <li>{{ $error }}</li> 
     @endforeach 
    </ul> 
</div> 
@endif 
したいビューの

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

だから私のコントローラメソッドの例です。

答えて

3

あなたのコントローラでこれを行うことができます:あなた前

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

そしてを、追加:

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

あなたのメッセージを添えてください。

関連する問題