限制结果嵌套并获得总数Laravel 4

时间:2013-12-22 15:11:16

标签: orm laravel-4 eloquent

我在关系上限制结果并获取原始行数时遇到一些麻烦。我们来看看我的情景:

我有帖子,帖子内容和评论。我想选择所有帖子并限制为5我的评论,但我需要知道该帖子有多少评论。

$post = Post::with(array('contentPost','commentPost' => function($query){
            $query->take(5);
        }))->where('wall_id','=',$team_info->id)->get();

通过这种关系,我将评论限制为5,这是正确的!但如果我想要计算所有的评论

$post->commentPost->count();

它只显示了5条评论,因为我限制了它。即使我限制他们,我怎样才能获得真实的评论数量?

1 个答案:

答案 0 :(得分:2)

$post->commentPost->count()来电中,您要求{$ 1}}与$ post相关联的结果。当然,这将始终是查询参数提供的实际行数。

“在一个地方做所有事情”很少是开发中的答案。即使您找到了实现这一目标的方法,将来当您需要更改此查询时会发生什么?你最终会得到易碎的代码,容易破损。

按照5个帖子的限制保持您的关系不变。为计数运行单独的查询。