Здравствуйте. Есть такой запрос:
$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 записи и тп. Дело как я понял в джоинах, если отключить все джоины и условия, то работает как надо. Помогите.