Como usar o KNPPaginatorBundle para paginar resultados usando o Repositório do Doctrine?
Estou trabalhando em um projeto Symfony2 e decidi usar o KNPPaginatorBundle para criar um sistema de paginação fácil. Então, criei uma entidade Product e quero adicionar o paginador à ação indexAction (gerada pelo comando 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
);
Funciona bem, mas quero usar o repositório do produto em vez de criar a consulta diretamente no controlador. Como eu posso fazer isso ? De fato, adicionar diretamente a coleção de resultados ao objeto paginar é muito lento, porque carregar todos os produtos e paginar o ArrayCollection.
Desde já, obrigado.
K4