Laravel表单验证中子级数据的唯一性过滤如何写?

【场景】
在更新产品时会传递产品表products的信息和子产品表product_items的信息,大概是这样:

{
    "name": "",
    "items": [
        {
            "id": 13,
            "name": "",
            "spec_name": "B01 浅肤色",
            "price": 19.99,
            "purchase_limit_qty": 3,
            "inventory_qty": 9999
        },
        {
            "id": 14,
            "name": "",
            "spec_name": "B02 象牙白",
            "price": 19.99,
            "purchase_limit_qty": 3,
            "inventory_qty": 9999
        },
    ],
    "status": true,
    "is_pick_up": true,
    "is_ship": true,
    "start_ship_time": "",
    "stop_ship_time": "",
    "user_id": 5,
    "assistant_name": ""
}

如何在更新时忽略当前的子产品ID呢?Route::unique()->ignore($item_id)不知道如何获取这个ID。当前过滤代码如下:

$id = $this->route('product', 0);
        switch ($this->method()) {
            case 'POST':
            case 'PUT':
                $rules = [
                    "name" => "required|unique:products,name,{$id}",
                    "items" => 'array',
                    "items.*.spec_name" => [
                        'required',
                        'distinct',
                        Rule::unique('product_items', 'spec_name')->where(function (Builder $query) use ($id) {
                            return $query->where('product_id', $id);
                        })],
                    "items.*.price" => 'required|numeric',
                    "items.*.purchase_limit_qty" => 'required|numeric',
                    "items.*.inventory_qty" => 'required|numeric',
                    "status" => "required",
                    "is_pick_up" => "boolean",
                    "is_ship" => "boolean",
                    "start_ship_time" => "required|date",
                    "stop_ship_time" => "required|date",
                    "user_id" => "required",
                ];
        }

        return $rules;
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!