Laravel проверка массивов - PullRequest
       0

Laravel проверка массивов

1 голос
/ 16 апреля 2020

Моя 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})?$/',
    ]);

1 Ответ

1 голос
/ 16 апреля 2020

У вас астери c в неправильном месте, попробуйте:

'invoice_products.*.product_sku' => ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...