Моя Laravel форма отправки имеет элемент invoice_products, который содержит все строки данных счета-фактуры. Вот то, что я получаю, когда я dd($request->invoice_products)
. Это массив из двух динамически генерируемых строк forlm. У меня может быть много таких строк в моей форме. Я пытаюсь проверить каждое из этих полей в отдельности.
[
{
"product_no": 3,
"product_name": "Dolor vitae ducimus voluptatum quia.",
"product_price": 12,
"product_disc": 0,
"product_qty": 1,
"line_total": "12.00",
"product_tax": {
"rate": 5,
"name": "VAT"
},
"line_tax_value": "0.60",
"product_sku": "Dr. Bailee Aufderhar MD"
},
{
"product_no": 13,
"product_name": "Esse explicabo quos ut autem iusto nam est quia.",
"product_price": 111,
"product_disc": 0,
"product_qty": 1,
"line_total": "111.00",
"product_tax": {
"rate": 5,
"name": "VAT"
},
"line_tax_value": "5.55",
"product_sku": "Addie Reichert II"
}
]
Это мой код подтверждения в laravel. Это не похоже на работу. Что мне не хватает? Я прочитал в документации, что массивы могут быть проверены с помощью *.
$this->validate($request, [
'invoice_products.product_sku.*' => 'required|exists:items,sku',
'invoice_products.product_price.*' => 'required',
'invoice_products.product_disc.*' => 'required',
'invoice_products.product_qty.*' => 'required|numeric|min:0|regex:/^\d+(\.\d{1,2})?$/',
]);