2017-03-05 1 views
0

Ich möchte eine Überprüfung für ein Formular erstellen, das das Kennwort zurücksetzt.Benutzerdefinierte Validierungsregeln

Ich habe eine Methode, die überprüft, ob das neue Passwort identisch sind und mehr als 6 Zeichen haben.

Ich vermisse nur eine Sache zu überprüfen, ob das vorherige Passwort konsistent ist.

/** 
* 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

Was meinst du mit "konsistent"? –

+0

Ich meine oder wie man überprüft, ob das angegebene Passwort das gleiche wie die in der Datenbank ist. – chmod

+0

Sie wissen, ich gebe das aktuelle Passwort und ich möchte überprüfen, ob das Passwort das gleiche wie in der Datenbank ist. – chmod

Antwort

0

Try this:

\Hash::check($request->password, $user->password); 
0

Der beste Weg, dies zu tun, ist es, neue Gültigkeitsregel zu erstellen: Custom Validation Rules.

Was ich getan habe (nicht getestet):

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

Und dann in Ihrem Controller/Ort, an dem Sie bestätigen:

$password = 'password hash to validate with'; 
$this->validate($request, [ 
    'old_password' => 'required', 
    'password' => 'required|min:6|confirmed|notSamePassword:'.$password 
]); 
Verwandte Themen