ZF2抓住了所有不匹配任何路线的东西

时间:2016-01-21 10:02:28

标签: php routes zend-framework2

在我的Api中,我在module.config.php中指定了多个子路由。当使用无效路由访问Api时,我得到了我的应用程序模块的404,但我想在json中返回404。 我的想法是捕获所有无效的路由并转发到控制器操作以返回有效的json 404响应。

我的路线配置如下:

UITextField

通配符类型以某种方式工作但不适用于所有路由。但是不推荐使用通配符。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我决定使用正则表达式路线类型并将其放在我孩子路线的最顶端:

'catch-all-no-match' => array(
    'type' => 'Regex',
    'options' => array(
        'regex' => '(?<content>.+)',
        'defaults' => array(
            'controller' => 'Api\Controller\Index',
            'action' => 'catch-all-no-match',
        ),
        'spec' => '%content%',
    ),
),

不要把它放在其他地方,因为它会在检查其他路线之前匹配。