Как использовать Zend Pagination

Я хочу, чтобы нумерация страниц в Zend Framework1,

в моделях я объявил Books.php (Приложение / модели / books.php):

<?php
class Model_Books extends Zend_Db_Table_Abstract
{
protected $_name = 'subscriber';
}

в контроллерах у меня есть это BookControllers.php (приложение / контроллеры / BooksControllers):

<?php
class BooksController extends Zend_Controller_Action
{
public function listAction()
{
$booksTBL = new Model_Books();
$this ->view->books= $booksTBL->fetchAll();
}
}

и в виду, я использовал для таблицы, чтобы показать запрос к базе данных (list.phtml)

<?php echo $this->doctype() ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>لیست</title>
<?php echo $this->headLink()->appendStylesheet('/css/global.css') ?>
</head>
<body>
<div class="datagrid">
<table style="border-collapse: collapse; text-align: center; width: 100%;">
<tr>
<th>id</th>
<th>username</th>
<th>domain</th>
<th>password</th>
<th>email address</th>
<th>ha1</th>
<th>ha1b</th>
</tr>

<?php
foreach ($this ->books as $key =>$value)
{

echo '<tr><td>'.$value->id.'</td><td>'.$value->username.'</td><td>'.
$value->domain.'</td><td>'.$value->password.'</td><td>'.$value->email_address
.'-</td><td>'.$value->ha1.'</td><td>'.$value->ha1b.'</td></tr>';
}
?>
</table>
</div>
</body>
</html>

Как разбить информацию на страницы с ограничением 10 записей на странице?

0

Решение

Попробуйте немного изменить код действия вашего контроллера:

public function listAction()
{
$request = $this->getRequest();
$page = $request->getParam('page', 1);

$booksModel = new Model_Books();
$select = $booksModel->select();
$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbTableSelect($select));
$paginator->setCurrentPageNumber($page);
$paginator->setItemCountPerPage(10);

$this->view->books = $paginator;
}

Затем вы можете использовать свой вид, как и раньше, — вам, вероятно, понадобятся кнопки для навигации по страницам. Вот основной paginator частично, используйте его, как указано в документации Zend:

<?php echo $this->paginationControl($this->paginator,
'Sliding',
'my_pagination_control.phtml'); ?>

Увидеть Zend_Paginator docs — Есть ответы на многие вопросы, связанные с этим классом.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]