我在关系上限制结果并获取原始行数时遇到一些麻烦。我们来看看我的情景:
我有帖子,帖子内容和评论。我想选择所有帖子并限制为5我的评论,但我需要知道该帖子有多少评论。
$post = Post::with(array('contentPost','commentPost' => function($query){
$query->take(5);
}))->where('wall_id','=',$team_info->id)->get();
通过这种关系,我将评论限制为5,这是正确的!但如果我想要计算所有的评论
$post->commentPost->count();
答案 0 :(得分:2)
在$post->commentPost->count()
来电中,您要求{$ 1}}与$ post相关联的结果。当然,这将始终是查询参数提供的实际行数。
“在一个地方做所有事情”很少是开发中的答案。即使您找到了实现这一目标的方法,将来当您需要更改此查询时会发生什么?你最终会得到易碎的代码,容易破损。
按照5个帖子的限制保持您的关系不变。为计数运行单独的查询。