Здесь работает верхний роутер. / 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',
),
),
),
)
),
),
Ваш массив неверен. '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'
)
)
)
)
),
Других решений пока нет …