当使用子节点时,ZF2段路由不匹配父节点的约束



我创建了以下路由:

'relatorios' => array(
    'type'    => 'ZendMvcRouterHttpSegment',
    'options' => array(
        'route'       => '/relatorios/:tipo',
        'defaults'    => array(
            'controller' => 'Relatorios',
            'action'     => 'index',
            'tipo'       => 'normais',
        ),
        'constraints' => array('tipo' => '(normais|administrativos)$',
    ),
    'may_terminate' => true,
    'child_routes'  => array(
        'view' => array(
            'type'    => 'ZendMvcRouterHttpSegment',
            'options' => array(
                'route'       => '/view/:id_relatorio',
                'defaults'    => array('action'       => 'view'),
                'constraints' => array('id_relatorio' => '[0-9]+'),
            ),
        ),
    ),
);

应该匹配以下路由:
/relations/normais //matches
/relations/administratis //matches
/relations/normis/view/1 //doesn't match
/relationos/administratis/view/1 //doesn't match

所以基本上:tipo参数必须是normaisadministrativos,并且有一个子/view/any_digits
当父路由被调用时它匹配,当子视图被调用时它不匹配,因为我的tipo约束。为什么呢?

根据我的评论,约束上的$意味着'字符串的结束'(在这种情况下是URL路径),所以它不应该在那里。

最新更新