【问题标题】:nested eager-loading using load()使用 load() 的嵌套预加载
【发布时间】:2019-12-20 01:25:31
【问题描述】:

一个帖子可以有很多评论。

一条评论可以有很多赞。

当我展示一个帖子时,我会急切地加载它的 cmets。对于这些 cmets 中的每一个,我想显示帖子作者是否喜欢评论的事实。

所以我发现自己确实需要load() 而不是再链接一个with(),这一切都是因为我需要先检索帖子的作者ID ($post->author->id)。然后帖子的作者 ID 通过闭包向下传递。

尽管这实际上效果很好(它确实是急切加载),但我对我的控制器现在看起来有多丑感到非常恼火。

有没有办法scopeload(),就像查询scopewith() 一样? 我想以一种优雅的方式将该块移动到特征中,而不是让它驻留在我的控制器中。 是的,我只是打算将那个恶心的部分移到一个函数中,但我真的希望我可以继续管道/链接$post = Post::query()->...->findOrFail($id)->???...

下面附上截图。我正在寻求指导。代码有效。

【问题讨论】:

    标签: php laravel eager-loading


    【解决方案1】:

    我将它移到了一个 trait 的方法中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      相关资源
      最近更新 更多