为了账号安全,请及时绑定邮箱和手机立即绑定

不要通过模型从数据库中获取行,而是通过外观数据库获取它

不要通过模型从数据库中获取行,而是通过外观数据库获取它

PHP
鸿蒙传说 2021-12-03 10:31:40
我不知道为什么,但是 mt User 模型点从 DB 获取行。但是门面 DB 明白了。在模型上也没什么特别的。在从 DB 获取它之前,我由工厂创建了这个 DB 行。它可以是什么?User::where('public_key', $data['merchant_key'])->where('type', 'merchant')->first()DB::table('users')->where('public_key', $data['merchant_key'])->where('type', 'merchant')->first()
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您在模型中使用了 Softdelete,它会deleted_at在您的表中查找一列。如果没有找到它会抛出一个错误。因此,如果您使用 softdelete 特性,请确保您的表有一deleted_at列。

对于您的信息,如果您使用模型获取数据,则不会出现软删除的行。但是,如果您使用 DB Facade 获取数据,也会出现软删除的行。在Laravel 文档中阅读有关软删除的信息


查看完整回答
反对 回复 2021-12-03
?
绝地无双

TA贡献1946条经验 获得超4个赞

这是因为,可能您正在使用softdelete .model 将添加额外的查询(范围)(其中已删除的_at 为空)。并且Db 外观不会检查它,因为在模型内部使用了 softdelete 特性。


查看完整回答
反对 回复 2021-12-03
  • 2 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信