3

我的 QueryBuilder 查询:

 <?php    $qb = $this->createQueryBuilder('m')  
                   ->join('m.sender', 's')
                   ->join('m.target', 't')
                               ->addSelect('s')
                   ->addSelect('t')
                   ->where('(m.sender = '.$Myid.'OR m.target = '.$Myid.')')
                   ->andWhere('m.grouper ='.$groupe) 
                   ->orderBy('m.created_date', 'ASC')
                   ->setMaxResults('10');

                   return $qb->getQuery()
                   ->getResult();

如何在 ASC 中显示最后 10 个结果?谢谢你

4

1 回答 1

6

来自 Doctrine 的文档:

15.2.3. 限制结果

为了限制结果,查询构建器有一些与 Query 对象相同的方法,这些方法可以从EntityManager#createQuery().

    <?php
    // $qb instanceof QueryBuilder
    $offset = (int)$_GET['offset'];
    $limit = (int)$_GET['limit'];

    $qb->add('select', 'u')
       ->add('from', 'User u')
       ->add('orderBy', 'u.name ASC')
       ->setFirstResult( $offset )
       ->setMaxResults( $limit );

如您所见,您必须使用setFirstResult()and setMaxResults()


我建议你看一下关于 QueryBuilder 的章节,以避免你丑陋的参数连接......

于 2012-08-16T14:43:21.663 回答