My Laravel form submission has an item called invoice_products which contains all lines of invoice data.Here is what I get when I dd($request->invoice_products) . It is an array of two dynamically generated forlm lines. I can have many such lines in my form. I am trying to validate each of these fields individually.
[
{
"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"
}
]
This is my validation code in laravel. It doesn't seem to work. What am I missing? I read in the documentation that arrays can be validated using *.
$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})?$/',
]);