Zend Framework 2 Сегментный маршрут, соответствующий "test", но не "test/"
У меня есть два модуля Admin и Application. В приложении модуля у меня есть следующий маршрут в мой module.config.php:
'admin' => array(
'type' => 'Segment',
'options' => array(
'route' => '/admin[/:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array (
'__NAMESPACE__' => 'Admin\Controller',
'module' => 'Admin',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'wildcard' => array(
'type' => 'Wildcard'
)
)
),
Проблема в том, что это совпадает
example.com/admin
и не совпадает
example.com/admin/
Как мне это исправить?
2 ответа
Решение
Вставить [/]
починить это. пытаться:
'route' => '/admin[/:controller[/:action]][/]',
Вы можете добавить дополнительный дочерний маршрут, который соответствует только /. Это также должно работать для той же проблемы с подстановочным (под) маршрутом.
'admin' => array(
'type' => 'Segment',
'options' => array(
'route' => '/admin[/:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array (
'__NAMESPACE__' => 'Admin\Controller',
'module' => 'Admin',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'wildcard' => array(
'type' => 'Wildcard'
'may_terminate' => true,
'child_routes' => array(
'ts' => array(
'type' => 'literal',
'options' => array('route' => '/' )
),
)
),
'ts' => array(
'type' => 'literal',
'options' => array('route' => '/')
),
)
),