2010-08-16 18 views
8

No encuentro Doctrine_Pager en Doctrine2 y realmente necesito una forma de buscar los resultados de mi consulta. ¿Hay alguna manera de usar un buscapersonas alternativo (Pear, Zend)? Por favor, publique también un código de ejemplo si la solución está disponible. Google aún no ha me ayudó, así que la gente esperanza será :)Cómo paginar los resultados de Doctrine2

Respuesta

6

Escribí esta extensión para Doctrine2 que contiene un potente localizador:

http://github.com/beberlei/DoctrineExtensions

+0

El código se ve muy bien, no puedo esperar a probarlo, gracias – pentarim

+0

@timdev, ¿Podría dar un código de muestra, cómo usamos Zend_Paginator y DoctrineExtensions \ Paginate \ PaginationAdapter o DoctrineExtensions \ Paginate \ Paginate ??? – ulduz114

0

Así como una nota sin embargo, la consulta # setMaxResults/query cubiertas # setFirstResult la mayoría de las necesidades básicas de paginación.

1

PagerFanta, como se ha mencionado por Maksim, viene recomendado. Sin embargo, también hay otro paquete de paginación que debería al menos mencionarse: http://symfony2bundles.org/knplabs/KnpPaginatorBundle

A diferencia de PagerFanta, KnpPaginatorBundle actualmente requiere el paquete zend paginator como dependencia.

2

En Doctrina 2.2, hay una clase Paginator ayudante: 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"; 
} 
Cuestiones relacionadas