2016-06-22 10 views
0

Ich versuche Array-Feld mit Laravel Validate Funktionalität zur Validierung alsLaravel validate Array-Felder

$this->validate($request,['prodActualQty' => 'required|numeric','actQty[]' => 'required' 
],$messages); 

meine Eingabedatei folgen: <input class='form-control' type='text' name='actQty[]'>

Es Fehler gibt, wenn die Felder leer sind, aber es gibt immer noch Fehler selbst Wir füllen die Felder aus.

+0

Entfernen Sie einfach [] ' 'actQty' =>‚required'' –

+0

dann Es erzeugt keinen Fehler, es bedeutet, dass Formular gesendet wird. – JohnB

+0

Welche Nachricht erhalten Sie, wenn Sie versuchen, zu senden, und es gibt einen Wert in den erforderlichen Feldern? – Frisbetarian

Antwort

1

In Laravel 5.2 können Sie Form-Array-Elemente mit dem Schlüsselwort wildcards validieren.

So wie pro Ihre Situation können Sie entweder entfernen [] wie unten

$this->validate($request->all(), [ 
    'prodActualQty'  => 'required', 
    'actQty'   => 'required' 
]); 

Oder verwenden Wildcard Operator

$this->validate($request->all(), [ 
    'prodActualQty'  => 'required', 
    'actQty.*'   => 'required' 
]); 
+0

Danke ... ich verstehe es nur .. aber wenn Nachricht für Fehler schreiben gibt es alle Nummern von Fehler gleich Eingabefelder . '$ messages = ['actQty. *. required' => 'Geben Sie die tatsächliche Materialmenge ein'];' – JohnB

+0

Für eine benutzerdefinierte Nachricht müssen Sie ein anderes Argument in der validate-Methode schreiben. so $ this-> validate ($ request-> all(), [ 'prodActualQty' => 'erforderlich', 'actQty. *' => 'erforderlich' ], [ 'actQty.1' = > 'einige Validierungsnachrichten für actQty.1', 'actQty.2' => 'einige Validierungsnachrichten für actQty.2', ]); –

+0

yeap .. aber ich weiß nicht über die Anzahl der Array-Felder sind da ... also schreiben actQty.1, actQty.2 wird wieder Probleme geben. – JohnB