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 に答える