儿童,用子路线的段路线不通过方法路线

时间:2015-07-28 04:37:07

标签: php routing zend-framework2 zend-route zend-framework-routing

这里的顶级路由器可以工作。 / property是一个Literal路由,它不会终止并获取子路由上的GET操作。 在下面我有一个段路由,就像它的父节点一样,不会终止并接收子路由上的GET操作。它应仅响应/ property / 12

上的GET请求

在路由时发现了一个未找到的错误。

'router' => array(
    'routes' => array(
        'property' => array(
            'type'    => 'Literal',
            'options' => array(
                'route'    => '/property',
            ),
            'may_terminate' => false,
            'child_routes' => array(
                'get' => array(
                    'type' => 'method',
                    'options' => array(
                        'verb' => 'GET',
                        'defaults' => array(
                            'controller' => 'Property\Controller\Rest',
                            'action' => 'get',
                        ),
                    ),
                ),
                'by_id' => array(
                    'type' => 'segment',
                    'options' => array(
                        'route' => '/[:propertyId]',
                        'may_terminate' => false,
                        'child_routes' => array(
                            'get_by_id' => array(
                                'type' => 'method',
                                'options' => array(
                                    'verb' => 'GET',
                                    'defaults' => array(
                                        'controller' => 'Property\Controller\Rest',
                                        'action' => 'getById',
                                    ),
                                ),
                            ),
                        )
                    ),
                ),

1 个答案:

答案 0 :(得分:2)

您的阵列无效。 'may_terminate'不应该在'options'内。不确定这是否会导致您的所有问题,但请尝试更新并查看是否已解决:

            'by_id' => array(
                'type' => 'segment',
                'options' => array(
                    'route' => '/[:propertyId]'
                ),
                'may_terminate' => false,
                'child_routes' => array(
                    'get_by_id' => array(
                        'type' => 'method',
                        'options' => array(
                            'verb' => 'GET',
                            'defaults' => array(
                                'controller' => 'Property\Controller\Rest',
                                'action' => 'getById'
                            )
                        )
                    )
                )
            ),