2013-05-16 4 views
1

В ZF2, как я могу добавить маршрут в качестве ребенка маршрута из другого модуля? Я предполагаю, что есть способ подключиться к событию где-нибудь?Добавление маршрута в качестве дочернего маршрута из другого модуля

E.g. Модуль А определяет маршрут для /foo. В модуле B я хотел бы добавить маршрут /foo/bar, создав маршрут /bar в качестве ребенка из «foo».

+0

В дополнение к ответу, предоставленному @Crisp [мой блог-статья о «понимании конфигурации ZF2»] (http://samminds.com/2013/04/understanding-zf2-configuration/) может вас заинтересовать , По сути, конфигурация всех модулей будет объединена в одну большую конфигурацию. Благодаря этим знаниям ответ Crisp может быть понятнее, поскольку в конечном итоге вы просто работаете с ONE Array) ;-) – Sam

ответ

5

я буду пытаться объяснить, но, может быть, пример будет лучше

ModuleA

поставляет /parent маршрут, который имеет ребенка маршрут /parent/foo

// routes 
'router' => array(
    'routes' => array(
     'parent' => array(
      'type' => 'Literal', 
      'may_terminate' => true, 
      'options' => array(
       'route' => '/parent', 
       'defaults' => array(
        '__NAMESPACE__' => __NAMESPACE__ . '\Controller', 
        'controller' => 'Index', 
        'action'  => 'index', 
       ), 
      ), 
      'child_routes' => array(
       'foo' => array(
        'type' => 'Literal', 
        'options' => array(
          'route' => '/foo' 
          'defaults' => array(
           '__NAMESPACE__' => 'ModuleA\Controller', 
           'controller' => 'Foo', 
           'action'  => 'index', 
         ), 
        ), 
       ), 
      ), 
     ), 
    ), 
), 

Модуль B

добавляет детский маршрут /parent/bar

Определение маршрута в модуле ModuleB будет объединено с ModuleA, когда ваше приложение загружает конфигурации модулей, и вы получите/foo и/bar в качестве дочерних элементов/parent, указав на их соответствующие контроллеры модулей.

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