2017-03-05 29 views
0

パスワードをリセットするフォームの検証を作成します。カスタム検証ルール

新しいパスワードが同じで、6文字以上あるかどうかを確認する方法があります。

以前のパスワードが一貫しているかどうかをチェックするのは1つだけです。

/** 
* Reset user password 
* 
* @return void 
*/ 
public function reset_password(Request $request){ 

    $this->validate($request, [ 
     'old_password' => 'required', 
     'password' => 'required|min:6|confirmed' 
    ]); 

    $user = Auth::user(); 
    $user->password = bcrypt($request->password); 
    $user->save(); 


    return redirect('/user/profile'); 
} 
+0

あなたは "一貫した" とはどういう意味ですか? –

+0

つまり、指定されたパスワードがデータベースのものと同じかどうかを確認することです。 – chmod

+0

あなたは知っている、私は現在のパスワードを与え、私はパスワードがデータベースと同じであるかどうかをチェックしたい。 – chmod

答えて

0

これを行うための最善の方法は、新しい検証ルールを作成することです。私が何をしたか

(テストしていません):

// Somewhere inside your app service provider boot() 
Validation::extend('notSamePassword', function($attribute, $value, $parameters, $validator) { 
    return !Hash::check($attribute, $parameters[0]); 
} 

そして、あなたはあなたの検証コントローラ/場所に:

$password = 'password hash to validate with'; 
$this->validate($request, [ 
    'old_password' => 'required', 
    'password' => 'required|min:6|confirmed|notSamePassword:'.$password 
]); 
関連する問題