Laravel对项目数组的请求验证

问题描述 投票:0回答:1

我有一个表格要求

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]。

先谢谢大家的宝贵意见。

laravel validation laravel-6 laravel-validation
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.