Laravel忽略唯一验证

时间:2019-06-24 12:53:50

标签: php laravel validation

我有一个产品表和唯一列,但是当我尝试更新它时却失败,并向我显示唯一错误消息。我试图做出一些忽略的操作,但不起作用。

 $attributes = $request->validate([
            'name' => 'required|min:3',
            'description' => 'nullable|min:3',
            'selling_price' => 'required|numeric',
            'purchase_price' => 'required|numeric',
            'quantity' => 'required|integer',
            'unit' => 'nullable',
            'stock_alert' => 'nullable|numeric',
            'unique_code' => "required|unique:products,unique_code,$product->id",
            'awb' => 'required|numeric'
        ]);

非常感谢您!

2 个答案:

答案 0 :(得分:1)

您可以忽略这样的字段

use Illuminate\Validation\Rule;

 $attributes = $request->validate([
            'name' => 'required|min:3',
            'description' => 'nullable|min:3',
            'selling_price' => 'required|numeric',
            'purchase_price' => 'required|numeric',
            'quantity' => 'required|integer',
            'unit' => 'nullable',
            'stock_alert' => 'nullable|numeric',
            'unique_code' => [
                "required",
                Rule::unique('products', 'unique_cod')->ignore($product->id),
             ],
            'awb' => 'required|numeric'
        ]);

答案 1 :(得分:0)

忽略它不是正确的方法。您出于某种原因使用验证。

要进行更新,只需将产品ID从引号中删除:

'unique_code' => 'required|unique:products,unique_code,'. $product->id,