2012-10-24 126 views
2

我有關於zf2中zend分頁和路由的問題。我想在同一頁面上顯示反饋項目的詳細信息以及其子項目(操作)的列表。下面Zend框架2,分頁路由問題

$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 
     ), 
    ), 
); 

我的航線代碼給我的房源頁面通過URL像

/dashboard/inbox/detail/4 

,渲染子項的規定頁。

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

其爲0(是我的問題)創建頁面的網址,以及反饋ID

/dashboard/inbox/detail/0/actions/page/2 
/dashboard/inbox/detail/0/actions/page/3 

我手工粘貼URL

/dashboard/inbox/detail/4/actions/page/2 

其顯示第2頁爲活動項目。我的控制器代碼工作正常,給我造成的,但仍然paginationControl反饋ID創建鏈接0

回答

7

您需要使用paginationControl視圖助手的第四個參數:

<?php 
    echo $this->paginationControl($this->paginator, 'Sliding', 
      'my_pagination_control', array('route' => 'paginator_route')); 
?> 

您可以通過參數視圖部分,例如通過您的路由名稱,以便您可以使用正確的路由生成yoru鏈接。

然後裏面你的看法部分,你可以在URL助手使用:

<?php echo $this->url($this->route, array('page' => $this->first), FALSE, TRUE) ?> 

見:http://framework.zend.com/manual/2.0/en/modules/zend.view.helpers.html#url-helper 在這裏你可以看到網址助手目前可以使用匹配PARAMS:

url($name, $urlParams, $routeOptions, $reuseMatchedParams) 

設置$ reuseMatchedParams爲true將允許使用當前匹配的參數作爲默認值。