我正在尝试在我的新闻源上创建分页.我的新闻Feed中有两种模式:所有新闻Feed和按类别提供的Feed.所有新闻Feed的分页工作正常,但我有“按类别分类”分页的问题.
我像这样使用paginationControl:
=$this->paginationControl(
$this->news,
'Sliding',
'pagination_control',
array('route' => 'news/category')
)?>
路线新闻/类别配置:
'category' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:category[/page-:page]',
'constraints' => array(
'category' => '[a-z]+',
'page' => '[1-9][0-9]*',
),
'defaults' => array(
'controller' => 'News\Controller\Item',
'action' => 'category',
'page' => 1,
)
),
'may_terminate' => true,
),
所以我需要指定参数类别.我在尝试这个:
=$this->paginationControl(
$this->news,
'Sliding',
'pagination_control',
array('route' => 'news/category', array('category' => $this->category->getUrl()))
)?>
但我收到错误“缺少参数…”:
看起来无法通过paginationControl设置参数.
如何在paginationControl中正确指定带参数的路由?
更新1
我的paginationControl视图如下所示:
<?php if ($this->pageCount > 1): ?>
<?php if (isset($this->previous)): ?>
«
else: ?>
«endif; ?>
foreach ($this->pagesInRange as $page): ?>
if ($page != $this->current): ?>
=$page?>
else: ?>
=$page?>endif; ?>
endforeach; ?>
<?php if (isset($this->next)): ?>
»
»="Страница ".$this->current." из ".$this->pageCount?>
解决方法:
您应该将所有其他参数作为关联数组传递到最后,如@ rianattow所说.通过这种方式,所有参数都可以通过$this-> paramname在pagination_control.phtml部分中访问
例:
echo $this->paginationControl(
$this->news,
'Sliding',
'pagination_control',
array( 'route' => 'news/category', 'category' => 'banana')
);
The fourth and final parameter is reserved for an optional associative
array of additional variables that you want available in your view
(available via $this). For instance, these values could include extra
URL parameters for pagination link.
我认为其他缺点是使用路由名称构建URL.不要将url作为参数传递给paginationControl()助手,而是尝试在分页部分内生成url,如下所示:
希望能帮助到你.
标签:php,pagination,zend-framework2
来源: https://codeday.me/bug/20190728/1561674.html