【发布时间】:2019-12-20 01:25:31
【问题描述】:
一个帖子可以有很多评论。
一条评论可以有很多赞。
当我展示一个帖子时,我会急切地加载它的 cmets。对于这些 cmets 中的每一个,我想显示帖子作者是否喜欢评论的事实。
所以我发现自己确实需要load() 而不是再链接一个with(),这一切都是因为我需要先检索帖子的作者ID ($post->author->id)。然后帖子的作者 ID 通过闭包向下传递。
尽管这实际上效果很好(它确实是急切加载),但我对我的控制器现在看起来有多丑感到非常恼火。
有没有办法scope 和load(),就像查询scope 和with() 一样?
我想以一种优雅的方式将该块移动到特征中,而不是让它驻留在我的控制器中。
是的,我只是打算将那个恶心的部分移到一个函数中,但我真的希望我可以继续管道/链接$post = Post::query()->...->findOrFail($id)->???...
下面附上截图。我正在寻求指导。代码有效。
【问题讨论】:
标签: php laravel eager-loading