FormRequests in Laravel 5 ist ein guter Ansatz für die Validierung und Autorisierung. Aber wie procceed, wenn ich Anfrage validieren muss, die Daten für eine Beziehung von eins zu viele enthalten. Zum Beispiel, wenn ich einfache Rechnung App habe. Eine Rechnung hat viele Dienste. Meine Form Post-Anforderung diese Daten enthalten:Laravel 5 Formularanfragen - validieren verwandte Daten
array (size=5)
'date' => string '2014-11-14' (length=10)
'num' => string '175' (length=3)
'client_id' => string '5' (length=1)
'vat' => string '1' (length=1)
'services' =>
array (size=2)
0 =>
array (size=3)
'description' => string 'Service 1' (length=36)
'value' => string '10' (length=2)
'items' => string '2' (length=1)
1 =>
array (size=3)
'description' => string 'Service 2' (length=11)
'value' => string '20' (length=2)
'items' => string '2' (length=1)
Jetzt in InvoiceFormRequest Klasse-I-Rechnungsdaten validieren, aber wie mit Dienstleistungen, um fortzufahren:
<?php namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Response;
class InvoiceFormRequest extends FormRequest
{
public function rules()
{
return [
'date' => 'required',
'num' => 'required',
'client_id' => 'required',
'vat' => 'required'
];
}
public function authorize()
{
return true;
}
}
Vielen Dank im Voraus!
aktualisieren: Wie ich here in Laravel wird 5.2 gelesen habe so etwas schreiben kann:
'services.*.description' => 'required',
'services.*.value' => 'required:numeric',
'services.*.items' => 'required:integer'
Sie benötigen einen benutzerdefinierten Validator zu verwenden. Siehe [this] (http://stackoverflow.com/a/26616023/397195), wenn Sie Ihren benutzerdefinierten Validator in Ihrem 'FormRequest' haben möchten. – Marwelln
Ihr Update sollte eine Antwort sein. – whoan
Ja, werde ich tun. Jetzt ist es eine Tatsache. Laravel 5.2 ist gerade erschienen. – fireball70