雄辩的紧急加载自定义属性

时间:2018-10-25 08:48:37

标签: php laravel eloquent lumen

上下文:我正在使用Lumen构建JSON API,并希望使请求尽可能小

我无法弄清楚如何在加载时有条件地添加雄辩的模型属性。

我的示例解释起来很复杂-因此,我将尝试将其简化为更简单的解释。

让我们以类别帖子评论为例。

在关系方面:

  • 类别 有很多 帖子
  • 帖子确实具有评论,但是由于各种原因,这并不是简单的关系,需要一些自定义过滤和加入。

问题1 :我已通过属性将评论“附加”到帖子-这是正确的吗?

我已使用getCommentsAttribute方法并将comments添加到模型上的appends数组中。

但是,当列出某个类别中的所有帖子时,就会出现 Comments 的情况-从而使JSON成为一个相当大的文件(许多具有许多类别的帖子)。

我意识到这是因为它们会被自动附加并从appends数组中删除。

但是,我随后努力让他们回来。如果我想要一个包含注释的其他类别列表,我似乎无法引用它们

Categories::find(2)->with([
    'posts'
]);

我尝试过在帖子后添加查询,并在语句中使用其他查询,但似乎无法访问评论。

问题2:您如何有条件地将属性添加到热切的load语句中,以便在某些请求上加载它们?

0 个答案:

没有答案