Дочерний, сегментный маршрут с дочерним маршрутом методом, а не маршрутизацией

Здесь работает верхний роутер. / property — это буквальный маршрут, который не заканчивается и получает действия GET на дочернем маршруте.
Ниже у меня есть сегментный маршрут, который, как и его родитель, не прерывается и отслеживает действия GET на дочернем маршруте. Он должен отвечать на запросы GET только на / property / 12

Я получаю не найденную ошибку при маршрутизации туда.

'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',
),
),
),
)
),
),

0

Решение

Ваш массив неверен. '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'
)
)
)
)
),
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]