Wie zu Seite Doctrine2 Ergebnisse [geschlossen]
Frage
Ich kann nicht Doctrine_Pager in Doctrine2 finden und wirklich brauche eine Art und Weise zu Seite meiner Abfrageergebnisse. Gibt es eine Möglichkeit, etwas alternativen Pager (Birne, Zend) zu benutzen? Bitte senden Sie einige Beispiel-Code als auch, wenn Lösung zur Verfügung steht. Google nur knapp sein Ziel hat mir geholfen, so die Hoffnung Leute werden:)
Lösung
Ich schrieb diese Erweiterung für Doctrine2, die einen leistungsfähigen Pager enthält:
Andere Tipps
In Lehre 2.2 gibt es eine Paginator Hilfsklasse: http: / /docs.doctrine-project.org/en/latest/tutorials/pagination.html
Sehr einfach zu bedienen:)
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, wie von Maksim erwähnt, kommt zu empfehlen. Allerdings gibt es auch eine andere Paginierung Bündel, das zumindest erwähnt werden sollte: http://symfony2bundles.org/knplabs/KnpPaginatorBundle
Im Gegensatz zu PagerFanta, KnpPaginatorBundle zur Zeit erfordert das zend paginator Paket als Abhängigkeit.
Nur als Anmerkung, obwohl, Query # setMaxResults / Abfrage # setFirstResult meisten grundlegenden Bedürfnisse für Paging abdeckt.
Es gibt einen guten 3. eine Lösung: https://github.com/whiteoctober/Pagerfanta
Ich fand es sehr nützlich