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 );

ご覧のとおり、 and を使用する必要がsetFirstResult()ありsetMaxResults()ます。


見苦しいパラメータの連結を避けるために、QueryBuilder に関する章を参照することをお勧めします...

于 2012-08-16T14:43:21.663 に答える