2013-01-07 42 views
0

我可以重定向到匹配的路線,如$this->redirect()->toRoute('controller', array('action' => 'something', 'foo' => 'bar')),但我怎麼追加一個get查詢?我使用它作爲表格的過濾器。過濾器既可以在頁面上提交(形式爲get方法),也可以從另一個頁面鏈接(需要添加get查詢)。如何在Zend 2中使用GET查詢重定向?

回答

1

試試這個:

'course' => array(
    'type' => 'Segment', 
    'options' => array(
     'route' => '/course[/:action[/:id]]', 
     'constraints' => array(
      'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
      'action'  => '[a-zA-Z][a-zA-Z0-9_-]*', 
      'id' => '\d+' 
     ), 
     'defaults' => array(
      '__NAMESPACE__' => 'Home\Controller', 
      'controller' => 'course', 
      'action' => 'index', 
      'id' => 0 
     ), 
    ), 
    'may_terminate' => true, 
    'child_routes' => array(
     'query' => array(
      'type' => 'Query', 
      'options' => array(
      'route' => '?[:filterByDepartment]' 
     ), 
     ), 
    ), 
), 

確保線路滿足您的視圖需要:

echo $this->url('course/query', array('controller'=>'course', 'action'=>'index', 'id'=>0, 'filterByDepartment'=>'depA')); 

,如果這是正確的,讓我們嘗試在控制器動作如下:

$this->redirect()->toRoute('course/query', array('controller'=>'course', 'action'=>'index', 'id'=>0, 'filterByDepartment'=>'depA')); 
+0

這不適合我 – Raekye

+0

你能告訴我完整的路由配置嗎? – samsonasik

+0

' '當然'=>數組( \t '類型'=> '段', \t '選項'=>數組( \t \t '路線'=>「/當然[/:操作[/:ID]] 」, \t \t '約束'=>數組( \t \t \t '動作'=> '[A-ZA-Z] *', \t \t \t 'ID'=> '[0-9] *', \t \t) \t \t '缺省'=>數組( \t \t \t '控制器'=> '主頁\控制器\場', \t \t \t '動作'=> '索引', \t \t \t的 'id'=> 0, \t \t) \t \t 'may_terminate' =>真, \t \t 'child_routes'=>數組( \t \t \t '查詢'=>數組( \t \t \t \t '類型'=> '查詢', \t \t \t \t '選項'=>數組( \t \t \t \t \t '路線'=> '?[:filterByDepartment]', \t \t \t \t) \t \t \t) \t \t) \t ), ),'(我用大寫查詢也試過了) – Raekye