2010-08-16 6 views
8

Non riesco a trovare Doctrine_Pager in Doctrine2 e ho davvero bisogno di un modo per visualizzare i risultati della query. C'è un modo per utilizzare un altro cercapersone (Pera, Zend)? Si prega di inviare qualche esempio di codice pure se la soluzione è disponibile. Google non ha ancora mi ha aiutato, così la gente la speranza sarà :)Come visualizzare i risultati di Doctrine2

risposta

6

Ho scritto questa estensione per Doctrine2 che contiene un potente cercapersone:

http://github.com/beberlei/DoctrineExtensions

+0

Il codice sembra davvero bello, non vedo l'ora di provarlo, grazie – pentarim

+0

@timdev, potresti dare un codice di esempio, come utilizziamo Zend_Paginator e DoctrineExtensions \ Paginate \ PaginationAdapter o DoctrineExtensions \ Paginate \ Paginate ??? – ulduz114

0

Proprio come una nota, però, Query # setMaxResults/query coperture # setFirstResult la maggior parte delle esigenze di base per il paging.

1

PagerFanta, come detto da Maksim, viene raccomandato. Tuttavia, vi è anche un altro pacchetto di paginazione che dovrebbe almeno essere menzionato: http://symfony2bundles.org/knplabs/KnpPaginatorBundle

A differenza di PagerFanta, KnpPaginatorBundle richiede attualmente il pacchetto zend paginator come dipendenza.

2

In Dottrina 2.2, c'è una classe helper Paginator: http://docs.doctrine-project.org/en/latest/tutorials/pagination.html

Molto facile da usare :)

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