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

Routing 跳过ZF2 HTTP查询路由器中的自定义参数,routing,zend-framework2,zend-router,Routing,Zend Framework2,Zend Router,我正在使用zend url helper和其他/query生成url地址,正如我发现的那样 . 在配置文件中,我设置了如下路由器: 'my_name' => array( 'type' => 'segment', 'options' => array( 'route' => '/my_name/:id/some_action[/:id2]',

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

'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
我收到生成的链接,如下所示:

'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
我想做的是删除
控制器
操作
参数,我没有设置这些参数,只显示我自己提供的参数


路由器配置中是否有可设置的选项?或者有没有其他方法可以得到我想要的?

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

'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
 ),

您在url帮助程序中使用什么代码来生成链接?这是
Zend\View\helper\url
,并且
\uu invoke()
用于生成链接。我使用
AbstractRestfulController
,并根据HTTP方法和url部分选择适当的操作(
某些操作
)。那样的话,我想我不可能进入应该采取行动的路线。啊,你从来没有提到过:)