【问题标题】:Laravel ignore unique validationLaravel 忽略唯一验证
【发布时间】:2019-06-24 21:05:14
【问题描述】:

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

 $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'
        ]);

非常感谢!

【问题讨论】:

  • 存储还是更新方法?要进行更新,请将 id 从引号 "required|unique:products,unique_code,". $product->id 中取出。要制作 store 方法,只需 required|unique:products

标签: php laravel validation


【解决方案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'
        ]);

【讨论】:

  • 它仍然失败,并显示此错误消息。唯一代码已被使用。
  • products表的主键是什么?
  • $table->bigIncrements('id');
  • 你能确定$product->id是你一直在更新的记录的id
  • 我用 dd 来显示,它是正确的 id。我不知道为什么不起作用。我正在使用路由模型绑定。
【解决方案2】:

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

要进行更新,只需将产品 ID 从引号中取出,如下所示:

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

【讨论】:

  • 它仍然失败,并显示此错误消息。唯一代码已被使用。
  • 'unique_code' => 'required|unique:products,unique_code,' .$product->id,
  • 获取您要更新的产品的 id,例如 1000,将验证更改为'unique_code' => 'required|unique:products,unique_code,1000',检查它是否与该产品完全一致,如果没有,则说明您没有正确传递 id .
猜你喜欢
  • 2021-02-07
  • 2020-09-13
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 2017-10-05
  • 2018-10-26
相关资源
最近更新 更多