Comenzando con la versión 2.2 Doctrine tiene Paginator. Sólo hay un ejemplo en la documentación:Doctrine2 Paginator
<?php
use Doctrine\ORM\Tools\Pagination\Paginator;
$dql = "SELECT p, c FROM BlogPost p JOIN p.comments c";
$query = $entityManager->createQuery($dql)
->setFirstResult(0)
->setMaxResults(100);
$paginator = new Paginator($query, $fetchJoin = true);
$c = count($paginator);
foreach ($paginator as $post) {
echo $post->getHeadline() . "\n";
}
No hay nada nuevo en esta clase ya que todo el proceso descrito en la documentación se puede hacer con $query->getResult()
.
Sé que hay algunos paquetes acerca de la paginación, pero no quiero instalar paquetes de terceros para problemas tan triviales. Por otro lado, no puedo encontrar nada sobre la paginación de la doctrina2. Debería haber algunos métodos útiles de la clase. ¿Donde puedo encontrarlos? Si no hay, ¿cuál es el objetivo de toda la clase?
Esto no responde a la pregunta porque no hay nada específico de Symfony en el problema en cuestión. Sería mejor tener una solución solo de doctrina en su lugar. Estoy teniendo exactamente el mismo problema y me pregunto cuál es el objetivo de la clase Paginator. –
AFAICT, la clase Paginator existe únicamente para resolver el problema que ocurre al intentar usar setMaxResults en una consulta DQL unificada. Golpes de mal diseño para mí, pero aparentemente lo que sé. >. < –