标签: deleted_at
-
在 Laravel 6 中,模型应用了软删除后再次插入记录会出现唯一键冲突,这是因为软删除仅更新 deleted_at 字段而未从数据库物理移除记录。由于查询结果自动排除软删除数据,需要使用 withTrashed 方法获取包含软删除在内的记录,再利用 forceDelete 方法进行硬删除。永久删除记录后,再次插入新数据即可避免冲突并成功执行。
-
本文基于 yiisoft/yii2-app-advanced 模板,记录了在 RESTful 接口应用中实现 ActiveRecord 软删除功能的过程。通过数据库迁移新增了 is_deleted 和 deleted_at 字段,重新生成模型类并附加软删除行为,同时配置了自定义 ActiveQuery 类。经测试,软删除逻辑已替换原有的状态标记,能够确保已删除数据的用户名可被复用,且列表查询默认过滤已删除资源,符合预期。
