2016-05-24 5 views
1
geben

In meiner Laravel 5.2 app, ich habe die folgenden Validierungsregeln ein Feld zu überprüfen:Laravel: Tragen Sie Gültigkeitsregel nur, wenn der andere ein

$rules = array(
    'file' => 'mimes:jpg,png,pdf,doc,docx', 
    'file' => 'validate_file' 
); 

nun die validate_file ist eine benutzerdefinierte Gültigkeitsregel. Ich möchte es nur nur ausführen, wenn die erste mimes Validierung passiert.

Ich weiß, ich könnte einfach validieren/Redirect mit Fehlern - in zwei Chargen, zuerst die mimes, dann die validate_file, aber es scheint wie ein Overkill.

Irgendwie kann ich es klug in Laravel 5.2 tun?

Antwort

1

Verwenden Sie das Attribut "Kaution". Nach dem ersten Fehler wird die Validierung gestoppt.

$this->validate($request, [ 
    'title' => 'bail|mimes:jpg,png,pdf,doc,docx|validate_file', 
]); 

https://laravel.com/docs/5.2/validation#validation-quickstart Suche nach "bail"

+0

Nizza. Genau das, was ich brauchte. – lesssugar

+2

Es muss jedoch darauf hingewiesen werden, dass "Kaution" nur auf der Ebene eines einzelnen Wertes funktioniert, in diesem Fall nur für das Feld "Titel". Wenn später weitere Felder validiert werden, findet ihre Validierung noch statt. – lesssugar

+0

Dies ist nicht wirklich die richtige Antwort auf die Frage, was passiert, wenn das Feld für die zweite Validierung anders ist? – Coder

Verwandte Themen