rab*_*rab 2 zend-framework2 zend-framework-routing
我在zf2中有关于zend分页和路由的问题.我想在同一页面上显示反馈项的详细信息及其子项(操作)列表.我的路线代码如下
$routes['dashboard_inbox_actions'] = array(
'type' => 'segment',
'options' => array(
'route' => '/dashboard/inbox/detail[/:feedback[/actions/page/:page]]',
'constraints' => array(
'feedback' => '[0-9]+',
'page' => '[0-9]+',
),
'defaults' => array(
'__NAMESPACE__' => 'Dashboard\Controller',
'controller' => 'inbox' ,
'action' => 'detail',
'feedback' => 0 ,
'page' => 1
),
),
);
Run Code Online (Sandbox Code Playgroud)
我通过URL传递
/dashboard/inbox/detail/4
Run Code Online (Sandbox Code Playgroud)
在列表页面中,用于呈现子项目的提供页面.
<?php echo $this->paginationControl($this->paginator, 'Sliding' ); ?>
Run Code Online (Sandbox Code Playgroud)
创建分页网址,反馈ID为0(我的问题)
/dashboard/inbox/detail/0/actions/page/2
/dashboard/inbox/detail/0/actions/page/3
Run Code Online (Sandbox Code Playgroud)
我手动粘贴网址
/dashboard/inbox/detail/4/actions/page/2
Run Code Online (Sandbox Code Playgroud)
它将第2页显示为活动项.我的控制器代码工作正常并给我结果,但仍然paginationControl创建反馈ID为0的网址.
您需要使用paginationControl视图助手的第四个参数:
<?php
echo $this->paginationControl($this->paginator, 'Sliding',
'my_pagination_control', array('route' => 'paginator_route'));
?>
Run Code Online (Sandbox Code Playgroud)
您可以将参数传递给视图部分,例如传递路径名称,以便您可以使用正确的路径生成yoru链接.
然后在你的视图部分你可以在url帮助器中使用它:
<?php echo $this->url($this->route, array('page' => $this->first), FALSE, TRUE) ?>
Run Code Online (Sandbox Code Playgroud)
请参阅:http://framework.zend.com/manual/2.0/en/modules/zend.view.helpers.html#url-helper ,您可以在其中看到url helper可以使用当前匹配的params:
url($name, $urlParams, $routeOptions, $reuseMatchedParams)
Run Code Online (Sandbox Code Playgroud)
将$ reuseMatchedParams设置为true将允许使用当前匹配的参数作为默认值.
归档时间: |
|
查看次数: |
4039 次 |
最近记录: |