laravel的唯一验证怎么过滤软删除的数据
简介
laravel的唯一验证怎么过滤软删除的数据
问题
如果表用到软删除,在使用表单验证唯一的时候,如果该值存在,则无法过唯一。
栗子:
可以看到,domain值为www.2gdddl.com的记录,已经被软删除了,在添加的时候。
解决方法
方法一
Rule::unique('users')->where(function ($query) {
$query->where('deleted_at', null)->where('id', '<>', $selfId);
})
栗子:
验证规则修改如下
'domain' => [Rule::unique('hostpool_domainrules')->where(function ($query) {
$query->where('deleted_at', null);
})],
方法二
"unique:users,email_address,$selfId,id,deleted_at,NULL",
//表名,对应字段,本条记录id,id,deleted,null
//冒号后面6个空,前两个不用说,中间两个表示忽略id=$selfId,后面两个表示加上限定条件deleted_at=null
栗子 :
'domain' => "unique:hostpool_domainrules,deleted_at,NULL",
添加: