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处理!