我正在尝试在我的新闻模块中创建分页。
首先,我有这种模式:
我需要为这两种模式创建分页。我刚刚为所有新闻Feed创建了分页。没有问题。我有路由news
+我添加了pagination
路由作为子路由:
'router' => array(
'routes' => array(
'news' => array(
'type' => 'Segment',
'options' => array(
'route' => '/news',
'defaults' => array(
'controller' => 'News\Controller\Item',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'pagination' => array(
'type' => 'Segment',
'options' => array(
'route' => '/page-:page',
'constraints' => array(
'page' => '[1-9][0-9]*',
),
'defaults' => array(
'page' => 1,
)
),
'may_terminate' => true,
),
// more child routes
),
),
),
),
我正在使用像这样的paginationControl:
<?=$this->paginationControl(
$this->news,
'Sliding',
'pagination_control',
array('route' => 'news/pagination')
)?>
所有新闻Feed的分页都已完成。
另外,我需要按类别为Feed添加分页。我有问题。我已在路线category
中拥有子路线news
。我将子路线pagination
添加到news/category
。配置变得如此:
'router' => array(
'routes' => array(
'news' => array(
'type' => 'Segment',
'options' => array(
'route' => '/news',
'defaults' => array(
'controller' => 'News\Controller\Item',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'pagination' => array(
'type' => 'Segment',
'options' => array(
'route' => '/page-:page',
'constraints' => array(
'page' => '[1-9][0-9]*',
),
'defaults' => array(
'page' => 1,
)
),
'may_terminate' => true,
),
'category' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:category',
'constraints' => array(
'category' => '[a-z]+',
),
'defaults' => array(
'controller' => 'News\Controller\Item',
'action' => 'category',
)
),
'may_terminate' => true,
'child_routes' => array(
'pagination' => array(
'type' => 'Segment',
'options' => array(
'route' => '/page-:page',
'constraints' => array(
'category' => '[a-z]+',
'page' => '[1-9][0-9]*',
),
'defaults' => array(
'page' => 1,
)
),
'may_terminate' => true,
),
),
),
),
),
),
),
确定。现在我像这样使用paginationControl:
<?=$this->paginationControl(
$this->news,
'Sliding',
'pagination_control',
array('route' => 'news/category/pagination', array('category' => $this->category->getUrl()))
)?>
现在,当我尝试使用分页控件访问任何页面时,出现Missing parameter "category"
错误。
可能,我理解为什么会出现此错误:我指定路由news/category/pagination
并指定此路线category
的参数,但路线category
中没有参数news/category/pagination
,路线news/category
中有这样的参数,但我没有指定它 - 它错了。我的假设是对的吗?
那么,我如何使分页与分类一起使用?
非常感谢!
答案 0 :(得分:3)
最简单的方法就是将两条路线合并为一条。
'category-page' => 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,
),
应该工作。
你也可以制作&#34; page&#34;可选:
'route' => '/:category[/page-:page]',
这是最简单的方法。