2010-08-16 3 views
8

Je ne trouve pas Doctrine_Pager dans Doctrine2 et j'ai vraiment besoin d'un moyen de consulter les résultats de mes requêtes. Existe-t-il un moyen d'utiliser un autre pager (Pear, Zend)? Veuillez également poster un exemple de code si la solution est disponible. Google ne m'a pas aidé, pour que les gens de l'espoir va :)Comment faire pour accéder à la page Doctrine2 results

Répondre

6

J'ai écrit cette extension pour Doctrine2 qui contient un téléavertisseur puissant:

http://github.com/beberlei/DoctrineExtensions

+0

Le code ressemble vraiment sympa, ai hâte d'essayer, grâce – pentarim

+0

@timdev, pourriez-vous donner un exemple de code, comment utiliser Zend_Paginator et DoctrineExtensions \ Paginate \ PaginationAdapter ou DoctrineExtensions \ Paginate \ Paginate ??? – ulduz114

0

Tout comme une note cependant, la requête # setMaxResults/requête couvre # de setFirstResult la plupart des besoins de base pour la radiomessagerie.

1

PagerFanta, comme mentionné par Maksim, est vivement recommandé. Cependant, il existe également un autre paquet de pagination qui devrait au moins être mentionné:

Contrairement à PagerFanta, KnpPaginatorBundle nécessite actuellement le paquet zend paginator comme dépendance.

2

Dans Doctrine 2.2, il y a une classe d'aide Paginator: http://docs.doctrine-project.org/en/latest/tutorials/pagination.html

Très facile à utiliser :)

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"; 
} 
Questions connexes