2016-03-31 26 views
0

Ich habe ein Formular mit Kontrollkästchen und Texteingaben.Laravel 5.2 Validierung erforderlich_ohne Fehler bei mehr als 2 Feldern

In jeder Gruppe von Kontrollkästchen möchte ich eine Validierung, die mindestens ein Kontrollkästchen überprüft werden muss. Ich habe meine Validierungsregeln wie folgt aus:

$validRules = [ 
    "check1" => "required_without:check2,check3,check4,check5", 
    "check2" => "required_without:check1,check3,check4,check5", 
    "check3" => "required_without:check2,check1,check4,check5", 
    "check4" => "required_without:check2,check3,check1,check5", 
    "check5" => "required_without:check2,check3,check4,check1", 
    //more rules... 
]; 

Was ich erreichen müssen, ist nur einen Fehler zu erhalten, wenn kein Kontrollkästchen aktiviert ist, aber kein Fehler, wenn ein, zwei oder mehr geprüft.

Wenn ich das Formular absende, löst die Validierung einen Validierungsfehler aus, wenn sie nicht alle überprüft werden. Sind meine Regeln falsch oder ist das ein Fehler?

+0

Waren Sie jemals in der Lage, eine Lösung für dieses Problem zu finden? – thedeadlybutter

+0

Versuchen Sie diese [gleiche Art von Frage und Antwort] (http://stackoverflow.com/questions/30635678/laravel-validation-required-only-and-only-one-field) –

Antwort

2

ändern required_without required_without_all:

$validRules = [ 
    "check1" => "required_without_all:check2,check3,check4,check5", 
    // the rest of your rules 
]; 

Alternativ, wenn Sie ein Array für Ihren Checkbox-Namen verwendet, z.B.

<input type="checkbox" name="checkbox[]" value="1"> 
<input type="checkbox" name="checkbox[]" value="2"> 

Sie können nur eine von ihnen verlangen, indem Sie:

$validRules = [ 
    'checkbox' => 'required' 
]; 
+0

Lesen der Dokumente Ich habe verstanden, dass erforderlich_ohne_all 'ist für das Werfen eines Fehlers, wenn einer von ihnen ungeprüft ist, bin ich falsch? –

+0

@ProgramadorAdagal required_without_all bedeutet, dass es nur erforderlich ist, wenn alle anderen Kontrollkästchen nicht vorhanden sind, nicht nur eines von ihnen. –

+0

Stellen Sie außerdem sicher, dass Sie Leerzeichen zwischen den Optionen vermeiden. –

Verwandte Themen