Archive for Noviembre 1st, 2012
01
Nov

Hacer paginación de resultados en Symfony no es muy difícil. Con los siguientes pasos basta y sobra.

Para cualquier módulo que tengamos debemos agregar la instanciación de la clase sfDoctrinePager en la acción. Creamos una “Query” para obtener los registros que necesitamos y se los pasamos al paginador.


<?php 
public function executeIndex(sfWebRequest $request)
{
  $max_per_page = 10;
  $query = Doctrine::getTable('NombreClase')->createQuery('n');
  $this->pager = new sfDoctrinePager('NombreClase', $max_per_page);
  $this->pager->setQuery($query);
  $this->pager->setPage($request->getParameter('pag', 1));
  $this->pager->init();
}

Luego, en el “template”, usamos la lista de objetos como normalmente la usaríamos.


<?php foreach($pager->getResults() as $item): ?>
  [...]
  <?php echo $item ?>
  [...]
<?php endforeach; ?>