Как использовать KNPPaginatorBundle для разбиения на страницы результатов с помощью Doctrine Repository?
Я работаю над проектом Symfony2 и решил использовать KNPPaginatorBundle для создания простой системы разбиения на страницы. Поэтому я создал сущность Product и хочу добавить paginator к действию indexAction (сгенерированному командой CRUD).
// Retrieving products.
$em = $this->getDoctrine()->getManager();
//$entities = $em->getRepository('LiveDataShopBundle:Product')->findAll();
$dql = "SELECT a FROM LiveDataShopBundle:Product a";
$entities = $em->createQuery($dql);
// Creating pagnination
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$entities,
$this->get('request')->query->get('page', 1),
20
);
Он работает нормально, но я хочу использовать репозиторий Product вместо создания запроса непосредственно в контроллере. Как я могу это сделать ? Фактически, непосредственное добавление коллекции результатов к объекту разбивки на страницы происходит слишком медленно, потому что его загрузка всех продуктов затем разбивает на страницы ArrayCollection.
Заранее спасибо.
K4