Zend Framework 2 - 将随机位置的url段作为param

时间:2015-07-23 11:46:05

标签: php parameters routing zend-framework2

如果我的路由设置如下:

'foo' => array (
        'type' => 'segment',
        'options' => array (
                'route' => '/:foo',                                     
                'defaults' => array (
                        'controller' => 'Application\Controller\Foo',
                        'action' => 'foo' 
                ) 
        ),
        'may_terminate' => true,
        'child_routes' => array (
                'bar' => array (
                        'type' => 'segment',
                        'options' => array (
                                'route' => '/:bar[/:someMoreData]',
                                'defaults' => array(
                                        'controller' => 'Application\Controller\Foo',
                                        'action' => 'bar'
                                )
                        ),
                        'may_terminate' => true
                )
        )
)

我有这样的网址:     http://127.0.0.1/foo/bar/someParam(123)/someOtherParam(456,789)/myParam(1,2,3)

其中三个(或可能更多的参数)的顺序是完全随机的,它们的值包含在括号中,也可以是完全随机的。

如何使用$this->params('myParam')或类似方式调整路由以访问控制器中的每个参数及其值?

基本上就像我能够使用查询字符串一样:     http://127.0.0.1/foo/bar?myParam=1,2,3&otherParam ...

或者我在这里误解了什么?

注意:我无法使用查询字符串。

1 个答案:

答案 0 :(得分:0)

为什么不能将查询参数用于您的用例?这将是更清洁的imo。

无论如何,您可以使用fromRoute()方法而不使用任何参数来检索所有参数。

public function myAction()
{
    $params = $this->params()->fromRoute();
}