Laravel表单唯一验证(unique)忽略软删除数据的方法
admin 阅读:68 2024-03-02
使用 Laravel 表单验证中的唯一验证规则 unique 时,如果同时开启了软删除模式,那么就无法正常工作,在唯一验证时如果软删除数据中存在相同内容,那么仍然会验证失败!!!
解决方法区分新增和更新操作,每种操作都分两种写法:一种简单写法,另一种是中括号写法。
新增操作:
'email'=>'required|email|unique:users,email,NULL,id,deleted_at,NULL'
'email' => ['required', Rule::unique('users')->whereNull('deleted_at')]
更新操作:
'email'=> "required|email|unique:users,email,{$this->user->id},id,deleted_at,NULL"
'email' => ['required', Rule::unique('users')->ignore($this->user->id)->whereNull('deleted_at')]
声明
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!