Ich habe das Passwort route, view und method in UserController@getProfilePassword
und UserController@postProfilePassword
Momentan, wenn ich das new_password
-Feld ausfülle, wird es gehackt und korrekt an die Datenbank übergeben, dann kann ich mich mit dem neuen Passwort einloggen.
Aber ich muss in der Lage sein, die new_password
und new_password_confirm
zu validieren, um sicherzustellen, dass sie identisch sind und validiere das aktuelle Passwort des Benutzers.
Wie kann ich das tun?
BEARBEITEN: Ich habe $this->validate
zur Methode hinzugefügt, aber jetzt bekomme ich weiterhin den Fehler The password confirmation confirmation does not match.
, obwohl sie übereinstimmen, da ich ein einfaches Passwort verwende. Außerdem denke ich, dass ich das aktuelle Passwort manuell überprüfen muss, da validator
es nicht für mich tut.
Und das ist die Ansicht
%Vor% Es gibt eine Funktion Hash::check()
, mit der Sie überprüfen können, ob das alte Passwort korrekt ist oder nicht.
usage
es wird wahr zurückgegeben, wenn das alte Passwort korrekt eingegeben wurde und Sie Ihre Logik entsprechend hinzufügen können
für new_password
und new_confirm_password
identisch sein, können Sie Ihre Validierung in Formularanforderung wie
Sie können confirmed
hinzufügen, um das alte Passwort zu bestätigen.
Und 'required|confirmed'
wechselt zu 'required|same:password'
, um password
und password confirmation
'old_password' => 'required|confirmed',
'password' => 'required|min:4',
'password_confirmation' => 'required|same:password'
Viel Glück!
Sie können dies tun, indem Sie eine benutzerdefinierte Validierungsregel erstellen (für dieses Beispiel verwende ich current_password
und new_password
als Eingabe-Namen).
Fügen Sie dies in AppServiceProvider::boot()
:
Jetzt können Sie Folgendes in Ihrem Controller verwenden:
%Vor% Eine vollständige Funktion, die alles überprüft. Sie müssen nur old_password
, new_password
und confirm_password
senden.
Tags und Links php laravel-5 laravel-5.2 laravel