Frage Laravel: Validator, um nur Felder zu validieren, die in den übergebenen Daten existieren?


Momentan wird der Validator fehlschlagen, wenn ich eine erforderliche Regel für einen Schlüssel "name" habe, aber ich habe sie nicht im Datenarray übergeben. Ich möchte, dass es in diesem Fall nicht versagt. Ich möchte nur die Felder validieren, die im Datenarray vorhanden sind. Gibt es dafür einen integrierten Weg, oder muss ich die Validator-Klasse erweitern?


8
2018-01-12 01:40


Ursprung


Antworten:


Du kannst den ... benutzen sometimes Validierungsregel

In manchen Situationen möchten Sie vielleicht Validierungsüberprüfungen gegen a durchführen   Feld nur, wenn dieses Feld im Eingabearray vorhanden ist. Zu schnell   Beende dies, füge die Regel in deine Regelliste ein.

http://laravel.com/docs/validation#conditional-adding-rules

$v = Validator::make($data, array(
    'email' => 'sometimes|required|email',
));

Sei sicher, dass du rennst composer update Da die Verknüpfung manchmal eine Laravel 4.1.14-Funktion ist.

https://twitter.com/laravelphp/status/422463139293057024


13
2018-01-13 08:26



Sie können NULL-Werte verwenden und es wird bestanden, wenn die E-Mail nicht vorhanden ist

$request->validate([
    'name' => 'required',
    'email' => 'nullable|email'
])

Außerdem sollten Sie entfernen required Validierung.


1
2017-11-07 15:35