SoftDeletes 与 findOrFail 的冲突?

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

个人感觉很不方便。

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

刘先生
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

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

3年前 评论
讨论数量: 8

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

3年前 评论

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

3年前 评论
Epona

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

3年前 评论

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

3年前 评论

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

file

3年前 评论

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

3年前 评论
xiaopi

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

3年前 评论
dashing 3年前

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

3年前 评论

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