讨论数量:
- 在模型中添加 Illuminate\Database\Eloquent\SoftDeletes trait
- 在数据表中增加 deleted_at 字段
不知道这个问题的本意就是这么简单还是想问 Laravel 的底层逻辑 :wink:
软删除本质上是为查询的每一个 SQL 加上相应的过滤条件实现的;如加了软删除的模型,在每一次查询的时候,系统会自动添加 and deleted_at is null
。
在使用软删除时,需要为模型引入 SoftDelete 这个 trait,在这个 trait 里,通过添加全局 scope 的方式为这个模型添加类似这样的查询条件: whereNotNull('deleted_at')
。
推荐文章: