Laravel请求验证项目数组

时间:2020-05-18 15:58:15

标签: laravel validation laravel-6 laravel-validation

我确实有

的表单请求
public function rules()
{
    return [
        'order_num'         => ['required', 'date'],
        'order_date'        => ['nullable'],
        'items.*.item_code' => ['required'],
        'items.*.item_id'   => ['required','exists:'. app('db-connection') .'.items,id']
    ];
}

我需要验证商品代码是否唯一。 item []是更新查询,我需要检查item [] [item_code]是否唯一,而忽略item [] [id]。

在此先感谢您提出宝贵的意见。

1 个答案:

答案 0 :(得分:0)

尝试一下

        $requestedItem = $this->request->get('items');


        if (!$requestedItem['item_code']) {
            return  ['items.*.item_code' => 'required'];
        }
        $item = YourModelName::where('item_code', $requestedItem['item_code'])->get();

        $rules = [
            'order_num'         => ['required', 'date'],
            'order_date'        => ['nullable'],
        ];

        if ($item) {
            $rules['items.*.item_id'] = ['required', 'exists:items,id'];
        } else {
            $rules['items.*.item_id'] = ['nullable'];
        }

        return $rules;