У меня есть 6 записей в запросе, и этот код правильно показать его на 3 страницах:ZF2 Paginator не показывать последнюю страницу
(action)
public function listAction()
{
$page = (int) $this->params()->fromRoute('id', 0);
$posts = $this->getPagesTable()->selectPages();
$paginator = new Paginator(new PaginatorIterator($posts));
$paginator->setCurrentPageNumber($page)
->setItemCountPerPage(2)
->setPageRange(7);
return new ViewModel(array(
'paginator' => $paginator,
));
}
(view)
<?php foreach ($paginator as $post) : ?>
<h2><?php echo $this->escapeHtml($post->id); ?></h2>
<div><?php echo $this->escapeHtml($post->name);?>
<?php endforeach; ?>
, но когда я добавляю петлю Еогеасп в действии:
public function listAction()
{
$page = (int) $this->params()->fromRoute('id', 0);
$posts = $this->getPagesTable()->selectPages();
$paginator = new Paginator(new PaginatorIterator($posts));
$paginator->setCurrentPageNumber($page)
->setItemCountPerPage(2)
->setPageRange(7);
foreach ($paginator as $post) {
// some code or empty foreach
};
return new ViewModel(array(
'paginator' => $paginator,
));
}
paginator не показывает последнюю (3) страницу (правильно показано на странице 1 и 2 страницы). Почему? Спасибо!
Если добавить $ paginator-> getIterator() -> (перемотка назад) после Еогеасп {}, Paginator показать только первую страницу и не показывают второй и третьей страницах.
странная проблема, но почему у вас даже есть пустой foreach в Action? Если вы удалили код, чтобы уменьшить пример, возможно, вы устранили проблему! также я бы подумал, что цикл через $ posts был бы более эффективным? – CodeMonkey
В реальном проекте foreach включает некоторый код. – morin
@CodeMonkey '$ posts' содержит все строки, в которых' $ paginator' имеют ограниченные элементы (которые будут отображаться на странице). Чтобы получить эти элементы в «Action» перед отправкой на просмотр, вам нужен такой цикл (как выбранный выше как пустой цикл или '$ paginator-> getCurrentItems()' или ''$ paginator-> getItemsByPage ($ page)'), который приводит в пустых элементах '$ paginator'. – webcoder