¿Cómo usar KNPPaginatorBundle para paginar resultados usando Doctrine Repository?
Estoy trabajando en un proyecto de Symfony2 y decidí usar KNPPaginatorBundle para crear un sistema de paginación fácil. Así que creé una entidad de Producto y quiero agregar el paginador a la acción indexAction (generada por el 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 bien, pero quiero usar el repositorio del Producto en lugar de crear la consulta directamente en el controlador. Cómo puedo hacer eso ? De hecho, agregar directamente la colección de resultados al objeto paginar es demasiado lento porque carga todos los productos y luego pagina ArrayCollection.
Gracias por adelantado.
K4