@kirill-93

Limit в Doctrine2?

Здравствуйте. Есть такой запрос:
$qb = $this->getEntityManager()->createQueryBuilder();
        $qb->select('Activity')
                ->from($this->_entityName, 'Activity')
                ->leftJoin('Activity.patterns', 'Pattern')
                ->leftJoin('Pattern.metas', 'Meta')
                ->leftJoin('Pattern.pickups', 'Pickup')
                ->leftJoin('Activity.duration', 'Duration')
                ->andWhere(':timestapmStart >= Meta.repeat_start')
                ->andWhere(':timestapmStart <= Meta.repeat_end')
                ->andWhere(':timestapmEnd >= Meta.repeat_start')
                ->andWhere(':timestapmEnd <= (Meta.repeat_end + '.($interval*24*60*60).')')
                ->andWhere('Pickup.city = :city')
                ->setParameter('timestapmStart', $date->getTimestamp())
                ->setParameter('timestapmEnd', $dateEnd->getTimestamp())
                ->setParameter('city', $city);


Затем нужно установить лимит.

Использую пагинатор:
$paginator = new \Doctrine\ORM\Tools\Pagination\Paginator($qb, true);
        $result = $paginator->getQuery()
                            ->setMaxResults(3)
                            ->getResult();


В итоге возвращается одна запись. Без пагинатора также. Причем если указываю лимит 3-6 то возвращается 2 записи, 7-10 - 3 записи и тп. Дело как я понял в джоинах, если отключить все джоины и условия, то работает как надо. Помогите.
  • Вопрос задан
  • 2522 просмотра
Пригласить эксперта
Ответы на вопрос 1
@RJs45
У Вас пагинатор только для лимитов, или вам действительно нужна пагинация? Для лимитов у QueryBuilder есть
->setFirstResult( $offset )
->setMaxResults( $limit );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы