存储和更新上的 Laravel 表单请求验证使用相同的验证

Pan*_*ira 5 validation unique laravel

我创建了 laravel 表单验证请求并对该验证有独特的规则。

我想在不再次创建新表单请求验证的情况下使用它storeupdate方法。

但问题是当storeid 不存在并且验证通过时,当update我失败时,验证通过,因为 id 存在于存储中

我想忽略unique规则上的 id但使用相同的表单验证请求

如果来自 store 或 update 方法的此操作忽略唯一 ID,则检查表单验证请求类的最佳做法是什么?

Pan*_*ira 7

好的..我可以像@porloscerros 那样做吗?建议

    public function rules()
    {
        $rules = [
            'name' => 'required|string|unique:products|max:255',
        ];

        if (in_array($this->method(), ['PUT', 'PATCH'])) {
            $product = $this->route()->parameter('product');

            $rules['name'] = [
                'required',
                'string',
                'max:255',
                Rule::unique('loan_products')->ignore($product),
            ];
        }

        return $rules;
    }
Run Code Online (Sandbox Code Playgroud)