Bei der Entwicklung von Laravel ist die Formdatenüberprüfung ein wesentlicher Bestandteil, und einer der häufigsten Bedürfnisse besteht darin, sicherzustellen, dass der Wert eines Feldes in der Datenbank eindeutig ist. Laravel bietet einzigartige Überprüfungsregeln, um diese Funktion schnell zu implementieren.
Wenn es notwendig ist, die Einzigartigkeit eines Feldes zu überprüfen, können Sie den Überprüfungsregeln beispielsweise direkt hinzufügen :
$request->validate([
'email' => 'unique:users',
]);
Diese Regel prüft, ob der Wert der E -Mail -Spalte in der Benutzertabelle bereits vorhanden ist. Wenn sie wiederholt wird, wird ein Validierungsfehler zurückgegeben.
Bei der Aktualisierung von Benutzerinformationen müssen Sie möglicherweise zulassen, dass die ursprüngliche E -Mail -Adresse beibehalten wird. Zu diesem Zeitpunkt können Sie sich selbst ausschließen, indem Sie die ID des aktuellen Datensatzes in der eindeutigen Regel hinzufügen:
$request->validate([
'email' => 'unique:users,email,' . $user->id,
]);
Diese Überprüfung ignoriert Datensätze mit ID $ User-> ID , und es werden nur eindeutige Schecks auf anderen Datensätzen durchgeführt.
In Szenarien, in denen die Kennwortregistrierung oder -änderung registriert ist, wird der Benutzer normalerweise aufgefordert, das Passwort zweimal einzugeben, um sicherzustellen, dass die Eingabe korrekt ist. Laravel liefert bestätigte Regeln, um diese Anforderung zu vereinfachen.
Fügen Sie einfach der Feldvalidierungsregel bestätigt , zum Beispiel:
$request->validate([
'password' => 'required|confirmed',
]);
In dieser Regel wird automatisch prüft, ob die Werte des Felds Passwort und das Feld Passwort_Confirmation konsistent sind. Wenn sie inkonsistent sind, wird ein Fehler aufgefordert.
Bei der Implementierung der Funktion für Kennwortänderungen müssen zusätzlich zur Überprüfung des neuen Kennworts sichergestellt werden, dass das vom Benutzer eingegebene alte Kennwort korrekt ist und Sicherheitsbeschränkungen für das neue Kennwort auferlegt.
Ein relativ vollständiges Beispiel für die Überprüfung der Kennwortänderung ist wie folgt:
$request->validate([
'old_password' => 'required',
'new_password' => 'required|min:8|different:old_password',
'confirm_password' => 'required|same:new_password',
]);
In:
Nach den oben genannten Regeln kann die Sicherheit des Kennwortänderungsprozesses effektiv verbessert und Benutzer die Fehloperation verringern.