0

我可以重定向到类似的可匹配路由$this->redirect()->toRoute('controller', array('action' => 'something', 'foo' => 'bar')),但是如何附加 get 查询?我将它用于表格的过滤器。过滤器既可以在页面上提交(表单get方法),也可以从另一个页面链接(需要添加get查询)。

4

1 回答 1

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'));
于 2013-01-07T16:28:24.133 回答