Paginación con sfDoctrinePager
Codigo para el controlador
public function executeIndex(sfWebRequest $request)
{
//Creo una instancia de 'sfDoctrinePager' para la clase 'novedades', donde quiero mostrar 4 registros por página.
$this->pager = new sfDoctrinePager('novedades', 4);
$this->pager->setQuery(Doctrine::getTable('novedades')->createQuery('a'));
$this->pager->setPage($request->getParameter('page', 1));
$this->pager->init();
}
Luego en la vista, mostramos los registros recorriendo el paginador ‘$pager’
<?php foreach( $pager->getResults() as $row): ?>
<?php echo “título:”.$elemento->getTitulo(); ?>
<?php endforeach; ?>
Y finalmente debajo mostramos los números de las paginas junto con las flechas.
Debes modificar donde dice ‘novedades/index’ por tu modulo y acción (modulo/acción)
<?php if ($pager->haveToPaginate()): ?>
<?php echo link_to('«', 'novedades/index?page='.$pager->getFirstPage()) ?>
<?php echo link_to(‘<’, ‘novedades/index?page=’.$pager->getPreviousPage()) ?>
<?php $links = $pager->getLinks();foreach ($links as $page): ?><?php echo ($page == $pager->getPage()) ? $page : link_to($page, ‘novedades/index?page=’.$page) ?><?php if ($page != $pager->getCurrentMaxLink()): ?> –<?php endforeach ?><?php echo link_to(‘>’, ‘novedades/index?page=’.$pager->getNextPage()) ?><?php echo link_to(‘»’, ‘novedades/index?page=’.$pager->getLastPage()) ?><?php endif ?><div class=”pagination_desc”><strong>getNbResults() ?> Registros de Novedades<?php if ($pager->haveToPaginate()): ?>- page <strong>getPage() ?>/getLastPage() ?>