SoftDeletes 与 findOrFail 的冲突?

通过SoftDeletes 删除以后 再次使用findOrFail 则提示没找到模型。请问着是个问题吗?

个人感觉很不方便。

你们的软删除 重复删除是怎么做的。求贴代码!

刘先生
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

需要包含已删除内容使用 withTrashed()

2年前 评论
讨论数量: 8

需要包含已删除内容使用 withTrashed()

2年前 评论

需要包含已删除内容使用 withTrashed()

2年前 评论
Epona

软删除之后 对于用户来说代表这个数据已经是删除了,所以 findOrFail 没找到模型是正确的逻辑。 如果想拿到软删除的数据 那么需要用到一楼的方法,withTrashed()

2年前 评论

删除后还能查出来才有问题 包括已软删除的模型

2年前 评论

软删除之后是查询不到的,这才正常;如果想要查询软删除的数据,请这样使用:$query->withTrashed();

file

2年前 评论

你既然都删除了,为啥还要查出来?删除之后,每次查询都能查到,每次都要处理,不是更不方便?

2年前 评论
xiaopi

我觉得软删除真正的矛盾是,软删除和唯一索引的问题。 软件是逻辑删除,而唯一索引约束是数据库层面的,那么就有个问题,软删除以后,从用户角度来说,数据已经被删除了,但是从数据库角度,数据还是存在的。最后造成的麻烦就是:用户不能重复添加已被自己删除的数据。

2年前 评论
dashing 2年前
陈先生

建议使用 firstOr($columns,function(){ throw new OtherException(OtherException::MODEL_NOT_FOUND); });

2年前 评论

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