Один из слушателей должен посчитать и разрезать данную связку target + knppaginator symfony2

Я пытаюсь использовать KnpPaginatorBundle для Symfony2, который вы можете найти здесь.

Когда я пытаюсь сделать следующее:

$em = $this->getDoctrine()->getManager();
$query = $em->getRepository('VolleyScoutBundle:Users')->findAll();

$paginator  = $this->get('knp_paginator');
$pagination = $paginator->paginate(
    $query,
    $this->get('request')->query->get('page', 1)/*page number*/,
    10/*limit per page*/
);


// parameters to template
return $this->render('VolleyScoutBundle:Admin:accounts.html.twig', array('pagination' => $pagination));

Я всегда получаю сообщение об ошибке: One of listeners must count and slice given target. Когда я выгружаю запрос перед разбиением на страницы, я просто получаю массив с объектами Entity от пользователя.

Что я делаю не так?


person nielsv    schedule 19.01.2014    source источник
comment
Вы должны передать запрос, а не набор результатов в пагинатор.   -  person Uriziel    schedule 20.01.2014
comment
KnpPaginator может разбивать на страницы объекты ArrayCollection и array, а также @Uriziel — см. документацию. @nielsv, пожалуйста, включите в свой вопрос исключение и трассировку стека. Исключение возникает из метода Paginator::paginate(...) в knplabs/knp-components здесь.   -  person Nicolai Fröhlich    schedule 20.01.2014


Ответы (1)


Я получал ту же ошибку.

У меня это не сработало, если только я не использовал LTS-версию Symfony2:

"symfony/symfony": "2.3.*",

Однако я также использовал EventListener, который мог бы помочь:

https://github.com/KnpLabs/KnpPaginatorBundle/blob/master/Resources/doc/custom_pagination_subscribers.md

person timhc22    schedule 17.02.2014