я пытаюсь заставить мой роутер работать так, чтобы:
/Auth redirects to Auth controller of Auth MOdule
/Auth/Login redirects to Login controller of Auth Module
В то время как первый работает правильно, / Auth / Login приводит к проблеме маршрутизации.
Мой файл конфигурации маршрутизатора выглядит следующим образом:
'router' => array(
'routes' => array(
'Auth' => array(
'type' => 'literal',
'options' => array(
'route' => '/Auth',
'defaults' => array(
'controller' => 'Auth\Controller\Auth',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'Auth/Login' => array(
'type' => 'literal',
'options' => array(
'route' => '/Login',
'defaults' => array(
'controller' => 'Auth\Controller\Login',
'action' => 'index')
),
),
),
),
),
),
редактировать этот раздел
'child_routes' => array(
'Auth_Login' => array(
// ... your existing codes
Просто удали /
от Auth/Login
и использовать дефис -
или же _
вместо.
Ответ лежит в @TimFountain его комментариях. Потому что вы назвали дочерний маршрут Auth/Login
вам придется запросить Auth/Auth/Login
чтобы получить совпадение.
Как только вы переименуете дочерний маршрут в Login
вы получите соответствие маршрута, как и ожидалось Auth/Login
,