Zend Framework 2匹配从给定段开始的任何路由

时间:2015-12-03 17:10:25

标签: php zend-framework routing zend-framework2

在我的Zend Framework 2应用程序中,我需要构建一个匹配从给定段开始的任何路径。

要明确,请考虑我要匹配以/foo开头的所有内容,因此/foo/foo/bar/foo/baz/foo/bar/baz,... < / p>

我可以使用Wildcard路由器

来实现
'type' => 'Zend\Mvc\Router\Http\Segment',
'options' => [
    'route'    => '/foo',
    'defaults' => [
        'controller' => 'Application\Controller\Index',
        'action'     => 'index',
    ],
],
'may_terminate' => true,
'child_routes' => [
    'anything' => [
        'type' => 'Wildcard'
    ]
]

但是Wildcard已被弃用,所以我想避免使用它。有没有办法以另一种方式获得我正在寻找的东西?

1 个答案:

答案 0 :(得分:0)

'foo' => [
  'type' => 'Regex',
  'options' => [
        'regex' => '/foo(/(?<action>[a-zA-Z0-9_-]+))?',
        'defaults' => [
            '__NAMESPACE__' => 'Application\Controller',
            'module' => 'Application',
            'controller' => 'Foo',
            'action' => 'index',
        ],
        'spec' => '/foo/%action%',
    ],
],