laravel - Laravel 验证数组
问题描述
我的 Laravel 表单提交有一个名为 invoice_products 的项目,其中包含发票数据的所有行。这是我在dd($request->invoice_products)
. 它是由两条动态生成的表格线组成的数组。我的表格中可以有很多这样的行。我正在尝试单独验证每个字段。
[
{
"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})?$/',
]);
解决方案
您将星号放在错误的位置,请尝试:
'invoice_products.*.product_sku' => ...
推荐阅读
- java - java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V 与 IE 和 Selenium 通过 Java
- neo4j - Cypher:匹配具有相反方向的多种关系类型
- android - 如何将 Exoplayer 的控件放置在 PlayerView 之外
- python - 如何根据 Python 创建的时间在 3 分钟后删除 Mongodb 中的文档
- python - 以不相互接触的方式定位标签 donutplot matplotlib pandas
- image - 如何使用 OpenCV Python 去除自然场景文本检测的二进制图像中的噪声?
- ms-access - 微软访问编辑宏
- javascript - 如何在 td 中附加值
- php - 如何使用基于键值的结构序列化数组?
- splunk - 用于分析的免费设备日志