Ich habe Probleme beim Überprüfen eines Feldes mit Feldern, die eine benutzerdefinierte Regel erfordern. Ich habe folgenden Validator:laravel 5.4 validate array mit benutzerdefinierter Regel
$validator = Validator::make($request->all(), [
'order' => 'required',
'service_id.*' => Rule::unique('order_services')->where('order_id', $request->order),
'due_date.*' => 'required|date',
'vendor' => 'required|integer',
'instructions' => 'string|nullable',
'lock_box' => 'string|nullable',
]);
Das Fälligkeitsdatum Array validiert ganz gut, aber die Service-ID gibt die folgenden Fehler:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'service_id.0' in 'where clause' (SQL: select count(*) as aggregate from `order_services` where `service_id`.`0` = 10 and `order_id` = 100f)
Die Dienst id Regel verhindert, dass doppelten Datensätze mit derselben Bestellnummer und Service-ID
Die Regel funktioniert wie erwartet bei der Validierung einer einzelnen Service-ID, ich bin nur nicht sicher, wie mehrere Service-IDs gleichzeitig überprüft werden.
Vielen Dank im Voraus
Dank! Am Ende habe ich Rule :: unique ('order_services', 'service_id') verwendet -> where ('order_id', $ request-> order), – Wireland