laravel 5.4验证自定义规则阵列
问题描述:
我在验证需要自定义规则的字段数组时遇到问题。我有以下验证:laravel 5.4验证自定义规则阵列
$validator = Validator::make($request->all(), [
'order' => 'required',
'service_id.*' => Rule::unique('order_services')->where('order_id', $request->order),
'due_date.*' => 'required|date',
'vendor' => 'required|integer',
'instructions' => 'string|nullable',
'lock_box' => 'string|nullable',
]);
到期日排列验证就好了,但服务ID返回以下错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'service_id.0' in 'where clause' (SQL: select count(*) as aggregate from `order_services` where `service_id`.`0` = 10 and `order_id` = 100f)
服务ID规则防止重复记录有相同的顺序号,服务ID
规则在验证单个服务ID时按预期工作,我只是不确定如何同时验证多个服务ID。
在此先感谢
答
默认情况下,Laravel使用键unique
作用,因为它是一个数组,键是0,1,2,依此类推。该解决方案是独特的规则将列名这样的:
Rule::unique('order_services', 'id')->where('order_id', $request->order),
显然,在你的情况,你可能需要其他的列名比id
(这取决于你的应用程序)
谢谢!我结束了使用Rule :: unique('order_services','service_id') - > where('order_id',$ request-> order), – Wireland