2016-12-17 4 views
1

Ich benutze Laravel 5.3, das ist mein Auszug Code:Laravel Validate Radio Array

<tr> 
     <td> 
      <label class="radio-inline"> 
      <input name="val[1]" type="radio" value="1" >Rate 1</label> 
      <label class="radio-inline"> 
      <input name="val[1]" type="radio" value="2" >Rate 2</label> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <label class="radio-inline"> 
      <input name="val[2]" type="radio" value="1" >Rate 1</label> 
      <label class="radio-inline"> 
      <input name="val[2]" type="radio" value="2" >Rate 2</label> 
     </td> 
    </tr> 

und dies meine Validierung in der Steuerung:

$rules = array(
    'val[]' => 'required|in:1,2,3,4,5', 
); 

$validator = Validator::make(Input::all(), $rules); 

Wenn ich alle Radio überprüfen und Formular abgesendet haben, der Fehler erscheint mit dieser Nachricht: Das Feld val [] ist erforderlich.

Wie validiere Array von Radios?

aktualisieren diese Lösung

<tr> 
     <td> 
      <label class="radio-inline"> 
      <input name="val[1]" type="radio" value="1" required="true" >Rate 1</label> 
      <label class="radio-inline"> 
      <input name="val[1]" type="radio" value="2" required="true" >Rate 2</label> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <label class="radio-inline"> 
      <input name="val[2]" type="radio" value="1" required="true" >Rate 1</label> 
      <label class="radio-inline"> 
      <input name="val[2]" type="radio" value="2" required="true" >Rate 2</label> 
     </td> 
    </tr> 

Dank an Beantworter diese Frage

Antwort

1

Sie können versuchen, es als:

$rules = array(
    'val' => 'required|array', 
    'val.*' => 'required|in:1,2,3,4,5', 
); 
+0

Wenn ich dieses 'val. *' => 'Erforderlich | in: 1,2,3,4,5' verwende, wenn das Optionsfeld nicht aktiviert ist, ist es keine Validierung, sein Bestehen – sahmada

+0

danke für Ihr Update Nun, wenn ich nur ein Radio überprüfe, ist sein Pass-Zustand – sahmada

+0

Sein, weil, wenn ein Optionsfeld nicht aktiviert ist, dann es nicht an den Server übergeben wird. Sie müssen sicherstellen, dass die Daten an den Server übergeben werden. Es kann zwei Problemumgehungen geben - die eine ist die Verwendung des Attributs "required" von HTML oder das Aktivieren der Optionsfelder standardmäßig. –

1

einfach es wie folgt tun:

$rules = array(
    'val' => 'required|array', 
    'val.*' => 'required|in:1,2,3,4,5', 
); 

$validator = Validator::make(Input::all(), $rules); 

Hoffe, das hilft!

+0

Ich ändere meinen Code in Ihre Beratung funktioniert aber nicht, es ist keine Validierung, wenn ich nicht alle Radio überprüfen – sahmada

+0

danke, für Ihr Update, das Ergebnis Ihrer Beratung, wenn ich ein Radio seine als pass Bedingung – sahmada

+0

@sahmada - Funktioniert das für Sie richtig! –

Verwandte Themen