2013-06-21 15 views
6

Wenn ich derzeit eine Auswahlbox validieren möchte, muss ich alle Werte in das Validierungsfeld aufnehmen.So validieren Sie die Eingabe der Auswahlbox in Laravel4

public static $rules = array(
    'type' => array('required', 'in:a,b,c,d') 
); 

Gibt es einen Best-Practice-Weg, dies mit einem Array zu tun?

Zum Beispiel: Ich habe eine lange Liste von Ländernamen und möchte dies als Validierungsliste aufnehmen. Der hacky Weg, dies zu tun, etwas entlang der Linien von wäre:

public static $rules = array(
    'type' => array('required', 'in:'.implode(',', $countries)) 
); 

Dank

+0

Nur darüber nachdenken - ich könnte eine benutzerdefinierte Validierungsregel verwenden und den Array-Namen als Parameter hinzufügen? – eski009

Antwort

3

Ein Brauch ist möglich, aber eine exist-Regel kann auch die Arbeit machen. Weitere Details zu http://laravel.com/docs/validation#rule-exists

+0

Danke. Das hilft nur, wenn wir Daten aus einer Datenbank verwenden, aber – eski009

+0

gut, benutzerdefinierte Validierung ist es;) –

1

erstellen wählen Sie das Menü mit einem Array wie folgt:

$types = [ '' => 'select a type', 
      'one' => 'type one', 
      'a' => 'type a' ]; 

und Regeln für die Validierung wie folgt:

$rules = ['type' => 'required']; 

Als der erste Schlüssel Arten von $ eine leere Zeichenfolge . Wird wie folgt ausgegeben:

<option value=''>select a type</option> 

Bei der Validierung wird die erforderliche Regel nicht validiert.

Angenommen, alle Optionen im Auswahlmenü sind gültige Optionen.

Verwandte Themen