¿Cómo de resultados Doctrine2 [cerrar]
Pregunta
No puedo encontrar Doctrine_Pager en Doctrine2 y realmente necesita una forma de página de mis resultados de la consulta. ¿Hay una manera de utilizar algunos localizador alternativo (pera, Zend)? Por favor, publique un código de ejemplo, así si la solución está disponible. Google aún no ha me ayudó, así que la gente la esperanza será:)
Solución
Me escribió esta extensión para Doctrine2 que contiene un potente localizador:
Otros consejos
En Doctrina 2,2, hay una clase de ayuda Paginator: http: / /docs.doctrine-project.org/en/latest/tutorials/pagination.html
Muy fácil de usar:)
use Doctrine\ORM\Tools\Pagination\Paginator;
$dql = "SELECT p, c FROM BlogPost p JOIN p.comments c";
//build the query for the page you want to display
$query = $entityManager->createQuery($dql)
->setFirstResult(0)
->setMaxResults(10);
$paginator = new Paginator($query, $fetchJoinCollection = true);
$c = count($paginator); //automatically makes another query and returns the total number of elements.
//iterating over the paginator iterates over the current page
foreach ($paginator as $post) {
echo $post->getHeadline() . "\n";
}
PagerFanta, como se ha mencionado por Maksim, viene recomendado. Sin embargo, también hay otro paquete de paginación que al menos debe ser mencionado: http://symfony2bundles.org/knplabs/KnpPaginatorBundle
A diferencia de PagerFanta, KnpPaginatorBundle requiere actualmente el paquete paginador Zend como dependencia.
Así como una nota sin embargo, la consulta # setMaxResults / Consulta # setFirstResult cubre la mayor parte de las necesidades básicas para paginación.
Hay una buena tercera una solución: https://github.com/whiteoctober/Pagerfanta
Me pareció muy útil