Laravel 模型如何实现软删除?请简要说明步骤

请尝试在评论区里写下答案(如不能清楚表述,那么你可能没真正理解)。欢迎参与,为下一次求职做准备。

如题

摈弃世俗浮躁,追求技术精湛
Summer
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4
翟宇鑫
  1. 在模型中添加 Illuminate\Database\Eloquent\SoftDeletes trait
  2. 在数据表中增加 deleted_at 字段

不知道这个问题的本意就是这么简单还是想问 Laravel 的底层逻辑 :wink:

2年前 评论

我用的软删除不是时间戳,比如说 status=-1表示软删除,这个要怎么做?

2年前 评论
godruoyi

软删除本质上是为查询的每一个 SQL 加上相应的过滤条件实现的;如加了软删除的模型,在每一次查询的时候,系统会自动添加 and deleted_at is null

在使用软删除时,需要为模型引入 SoftDelete 这个 trait,在这个 trait 里,通过添加全局 scope 的方式为这个模型添加类似这样的查询条件: whereNotNull('deleted_at')

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!