在ZF2 HTTP查询路由器中跳过自定义参数

时间:2013-02-19 15:19:00

标签: routing zend-framework2 zend-router

我正在使用zend url helper和其他/query生成url地址,正如我发现的那样 here。 在配置文件中,我设置了类似的路由器:

'my_name' => array(
                'type' => 'segment',
                'options' => array(
                    'route'    => '/my_name/:id/some_action[/:id2]',
                    'constraints' => array(
                        'id' => '[0-9]+',
                        'id2' => '[0-9]+',
                    ),
                    'defaults' => array(
                        'controller' => 'MyController',
                    ),
                ),
                'may_terminate' => true,
                'child_routes'  => array(
                    'query' => array(
                        'type' => 'Query',
                        'options' => array(
                            'defaults' => array(
                            )
                        )
                    ),
                ),
            ),

我收到生成的链接,看起来像这样:

http://my_address/my_name/:id/some_action/?controller=MyController&limit=1&action=get&offset=2

我想要删除controlleraction参数,我不会设置这些参数,并且只显示我自己提供的参数。

在路由器配置中是否有任何选项?或者也许还有其他方法可以得到我想要的东西?

1 个答案:

答案 0 :(得分:0)

您的路线或默认设置中未指定操作。您需要能够识别匹配路由时要调用的操作(方法)。

'route'    => '/my_name/:id/:action[/:id2]', // allow action passed thru
'constraints' => array(
     'id' => '[0-9]+',
     'id2' => '[0-9]+',
 ),
 'defaults' => array(
    'controller' => 'MyController',
    'action'     => 'some_action', // or specify a default action to use
 ),