Hola estoy paginando unos datos que obtengo de una consulta en la base de datos. El problema que tengo es que sólo se me muestra la primera de los datos paginados, cuando pulso sobre otra pagina ya no me aparecen datos.
El código que tengo en mi controlador es este:
Código PHP:
$usuario= new Application_Model_DbTable_Usuario();
$rows = $usuario->buscausuarios($dni,$nombre,$apellidos,$provincia,$rol);
Zend_Paginator::setDefaultScrollingStyle('Sliding');
Zend_View_Helper_PaginationControl::setDefaultViewPartial('paginator/items.phtml');
$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($rows->toArray()));
$paginator= Zend_Paginator::factory($rows);
if ($this->_hasParam('page')) {
$paginator->setCurrentPageNumber($this->_getParam('page'));
}
$this->view->rows=$paginator;
En la vista:
Código PHP:
<?php if(count($this->rows)>0) {
echo $this->rows;
}?>
En application/views/scripts/paginator He creado items.phmt que contine: (está sacado del manual)
Código PHP:
<!--
See http://developer.yahoo.com/ypatterns/pattern.php?pattern=searchpagination
-->
<?php if ($this->pageCount): ?>
<div class="paginationControl">
<!-- Previous page link -->
<?php if (isset($this->previous)): ?>
<a href="<?php echo $this->url(array('page' => $this->previous)); ?>">
< Previous
</a> |
<?php else: ?>
<span class="disabled">< Previous</span> |
<?php endif; ?>
<!-- Numbered page links -->
<?php foreach ($this->pagesInRange as $page): ?>
<?php if ($page != $this->current): ?>
<a href="<?php echo $this->url(array('page' => $page)); ?>">
<?php echo $page; ?>
</a> |
<?php else: ?>
<?php echo $page; ?> |
<?php endif; ?>
<?php endforeach; ?>
<!-- Next page link -->
<?php if (isset($this->next)): ?>
<a href="<?php echo $this->url(array('page' => $this->next)); ?>">
Next >
</a>
<?php else: ?>
<span class="disabled">Next ></span>
<?php endif; ?>
</div>
<?php endif; ?>
He estado viendo el manual y creo que me falta por agregar $paginator->setView($view); pero no sé que le tengo que pasar en $view.
No sé si será ese el problema. Me podríais orientar. Gracias