ThinkPHP软删除与unique唯一性验证冲突问题
ThinkPHP软删除与unique唯一性验证冲突问题
使用背景环境描述解决方式截图说明
使用背景环境描述
ThinkPHP在使用软删除功能删除用户数据后,再次插入数据时,遇到唯一性验证问题 ‘username|用户名’ => ‘require|alphaDash|min:4|max: 20|unique:user’ 提示已经存在。此时查看数据库确实数据已存在,且delete_time字段标记为删除是的时间戳。
解决方式
修改ThinkPHP验证文件thinkphp/library/think/Validate.php文件中的unique函数。在查询语句前追加where的查询条件。$map[] = [‘delete_time’, ‘=’, null]; 原理就是添加一个限制约束,唯一性判断时增加一个delete_time = null的条件,只查询所有未删除的数据进行唯一性判断。
截图说
共有 0 条评论