You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel更新场景下唯一校验如何忽略软删除行与当前待更新行

解决方案

你只需要在原有Rule::unique链式调用后追加whereNull('deleted_at')条件,即可同时满足两个校验要求,修改后的验证规则如下:

return [
    'attribute_type_id' => 'required',
    'name' => [
         'required',
         Rule::unique('attributes')->ignore($ignore)->whereNull('deleted_at'),
     ],
    'order' => 'integer|nullable'
];

规则说明

  • ignore($ignore):自动排除传入的待更新行(支持传入行ID或者模型实例),修改当前行自身属性时不会触发重复校验报错
  • whereNull('deleted_at'):仅检索deleted_at字段为NULL的未软删除行做唯一性统计,和你新增逻辑里的unique:attributes,deleted_at,NULL写法效果完全一致

注意:如果你的attributes表主键不是默认的id,需要在ignore方法的第二个参数指定主键字段名,示例:Rule::unique('attributes')->ignore($ignore, '你的主键字段名')->whereNull('deleted_at')

内容的提问来源于stack exchange,提问作者B L Praveen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:36:00