OrderBy和Jointure的分页

时间:2015-04-09 18:22:41

标签: symfony doctrine-orm

我有一个非常烦人的分页问题,​​这是我的存储库代码:

public function listeSujetsAdmin($forum, $user, $page){
    $builder = $this->createQueryBuilder('s');
    $builder
            ->andWhere($builder->expr()->eq('s.forum', ':forum'))
            ->setParameter("forum", $forum->getId())
            ->addSelect('c')
            ->leftJoin('s.commentaires', 'c')
            ->orderBy('c.dateCreation', 'DESC')
            ->addSelect('l')
            ->leftJoin('s.lectures', 'l', Expr\Join::WITH, $builder->expr()->eq('l.user', ':user'))
            ->setParameter('user', $user->getId())
            ->setFirstResult( Sujet::MAX_PAR_PAGE * ($page-1) )
            ->setMaxResults( Sujet::MAX_PAR_PAGE );
    return new Paginator($builder);
}

如果我保留“ - > orderBy('c.dateCreation','DESC')”,则学说认为每个评论(c)都必须计算在我想要计算主题的位置。

这实际上是剖析器在这里显示的内容:

Profiler

谢谢大家!

0 个答案:

没有答案