0
Я устанавливаю paginator knp, мой композитор настроен на «knplabs/knp-paginator-bundle»: «2.3. *», Однако он не работает для объекта Query.Knp Paginator не работает с Query
Вот мой запрос:
public function getCommentariesByUser(User $user) {
$qb = $this->createQueryBuilder('c');
$qb->innerJoin('c.item', 'i');
$qb->andWhere($qb->expr()->eq('i.user', ':user'))
->setParameter(':user', $user);
$qb->andWhere($qb->expr()->neq('c.user', ':user1'))
->setParameter(':user1', $user);
return $qb->getQuery();
}
Как я зову его в своем действии:
public function commentariesAction($page) {
$user = $this->getUser();
$commentaryRepository = $this->getDoctrine()->getRepository('My\MyBundle\Entity\Commentary');
$query = $commentaryRepository->getCommentariesByUser($user);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query,
$page/*page number*/,
15/*limit per page*/
);
return array('pagination' => $pagination);
}
Он просто не показывает результаты, однако если я ставлю $ query-> выполнить () Оно работает. Что не так?
Вы возвращаетесь $ пагинации для целей тестирования? Я новичок в KnpPaginatorBundle, но перехожу к нему с помощью: 'return $ this-> render ('MyBundle :: myTemplate.html.twig', array ('pagination' => $ pagination)); ' Затем вы используете что-то вроде' {% для элемента в pagination%} 'для доступа к элементам. – caponica
Кроме того, он работает, если вы используете QueryBuilder вместо Query? то есть 'return $ qb' вместо' return $ qb-> getQuery() 'из' getCommentariesByUser() ' – caponica