晚上好, 我正在尝试应用验证规则时跳过数组的第一个索引,这是我到目前为止所尝试的
$validatedData = Validator::make($request->all(),([
'inventories.0' => 'bail',
'inventories' => 'required|array|filled',
'quantities.0' => 'bail',
'quantities.*' => 'required|array|filled',
'required.0' => 'bail',
'required.*' => 'required|array|filled',
]));
但是它不起作用,有什么想法吗? 我正在尝试添加多个动态字段,但想跳过它的第一个索引。 请查看下面给出的图片,以清楚地了解问题所在。
答案 0 :(得分:3)
尝试一下:
$validatedData = Validator::make($request->except(['inventories[0],quantities[0],required[0]']),([
'inventories.*' => 'required|array|filled',
'quantities.*' => 'required|array|filled',
'required.*' => 'required|array|filled',
]));
答案 1 :(得分:1)
保释金不用于跳过条目。但是它可以用于跳过验证逻辑。 例如
'phone' => 'bail|numeric|unique:users'
在这种情况下,如果输入的电话号码不是数字,则不会检查第三个验证(即电话号码在“用户”表中是否唯一)。
对于您的情况,不应使用“ $ request-> all()”。您应该使用“ request()-> except(['inventories [0],数量[0],必选[0]'])”
答案 2 :(得分:1)
这也许不是最佳实践。您试图让表示层对应用程序的数据/逻辑层产生直接影响。最好只发送您要验证的数据,而不是发送所有内容,因为它们试图获取您的验证(和其他逻辑)而忽略第一个数组元素,因此会更好。
您要提交的是api调用还是标准的网络表单?如果是api调用,在进行调用之前,您是否不能仅建立要发送的行的数据?
这将使您的逻辑层更加整洁,并允许您更轻松地更改ui,而不会影响逻辑,并且紧密耦合。
只是一个建议。