0

У меня есть два модуля Admin и Application. В приложении модуля у меня есть следующий маршрут в моем module.config.php:Zend Framework 2 Segment Route matching 'test', но не 'test /'

'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/

Как исправить это?

ответ

3

Вставьте [/], чтобы исправить положение. Попробуйте:

'route' => '/admin[/:controller[/:action]][/]', 
+0

Это сработало! Большое спасибо! – rafaame

0

Вы можете добавить необязательный дочерний маршрут, который соответствует только значению /. Это также должно работать для одной и той же проблемы с подстановочным (суб) маршрутом.

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

 Смежные вопросы

  • Нет связанных вопросов^_^