laravel的唯一验证怎么过滤软删除的数据

就是一个字段unique验证,除去自己本身之外还有软删除的记录

阅读 8.7k
2 个回答

今天遇到所以评论记录一下,并对上面的回答做个补充,方便跟我一样的人

  1. 第一种据说Laravel v5.3.18之后才可以这样用
Rule::unique('users')->where(function ($query) {
    $query->where('deleted_at', null)->where('id', '<>', $selfId);
})
  1. 第二种
"unique:users,email_address,$selfId,id,deleted_at,NULL",
//      表名,对应字段,本条记录id,id,deleted,null
//      冒号后面6个空,前两个不用说,中间两个表示忽略id=$selfId,后面两个表示加上限定条件deleted_at=null       

两者也都可以放在rules数组中,此处为参考链接

使用下面这种方式

'email' => Rule::unique('users')->where(function ($query) {
    $query->whereNotNull('deleted_at')->whereNot('id', 4);
})

参考官方文档 https://laravel.com/docs/5.4/...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏