Ich versuche, ein Kennwortfeld nur zu validieren, wenn es vorhanden ist. Ich möchte zulassen, dass jemand einen Benutzer bearbeitet und das Benutzerkennwort ändern kann oder auch nicht. Also dachte ich mir, dass ich Laravels Validierungsregeln verwenden könnte, speziell die "manchmal" -Regel. Ich habe diesen Satz von Regeln:Laravel manchmal Validierungsregel
$this->validate($request, [
'password' => 'sometimes|required|min:8',
]);
Dieser für das Beispiel vereinfacht wird, wird es in der Regel andere Regeln für andere Bereiche sein und strengere Regeln für das Passwort. Ich erwarte, dass dies nur die min: 8-Regel anwendet, wenn das Passwort-Feld in den übergebenen Daten vorhanden ist, aber wenn ich das Passwort-Feld leer lasse, bekomme ich einen Validierungsfehler, der besagt, dass das Passwort-Feld benötigt wird.
Ich bin mir nicht sicher, was ich in den Dokumenten nicht verstehe. Muss ich das Passwortfeld vor der Validierung manuell entfernen, wenn die Formulareingabe so leer übergeben wurde?
$data = $request->all();
if ('' === $data['password']) {
unset($data['password'])
}
... und dann das Array in den Validator geben. Ich denke, das macht Sinn, aber ich könnte mit einiger Bestätigung tun, dass ich es richtig verstehe. Danke im Voraus.
Von der Docs, das verstehe ich. Also, im Grunde bist du gut zu gehen, es sei denn, jemand sagt etwas anderes. –
Es scheint auch, dass, wenn Sie die erforderliche Regel entfernen, es funktioniert wie folgt: 'manchmal | min: 8 .....', aber die Dokumente machen dies nicht wirklich deutlich. – Steven1978
Yup. das dachte ich zuerst und überprüfte dann noch einmal die Dokumente. : D –