Archivo

Archivo para la Categoría "Doctrine"

Paginación con sfDoctrinePager

17 junio 2010 8 comentarios

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() ?>

Categorías:Doctrine, symfony
Seguir

Get every new post delivered to your Inbox.