2017-11-11 224 views
0

我在验证需要自定义规则的字段数组时遇到问题。我有以下验证: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。

在此先感谢

回答

0

默认情况下,Laravel使用键unique作用,因为它是一个数组,键是0,1,2,依此类推。该解决方案是独特的规则将列名这样的:

Rule::unique('order_services', 'id')->where('order_id', $request->order), 

显然,在你的情况,你可能需要其他的列名比id(这取决于你的应用程序)

+0

谢谢!我结束了使用Rule :: unique('order_services','service_id') - > where('order_id',$ request-> order), – Wireland