如果我的路由设置如下:
'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 ...
或者我在这里误解了什么?
注意:我无法使用查询字符串。
答案 0 :(得分:0)
为什么不能将查询参数用于您的用例?这将是更清洁的imo。
无论如何,您可以使用fromRoute()
方法而不使用任何参数来检索所有参数。
public function myAction()
{
$params = $this->params()->fromRoute();
}