Заставьте Zend 2 искать шаблоны только в том же модуле

У меня есть (упрощенно) два модуля, Application и Admin. Я некоторое время работал над модулем Admin и начал с Application. Оба модуля оснащены контроллером с именем UsersController.

Теперь, когда я начал делать Application и создал несколько маршрутов и действий, мой модуль Admin сломался. Ошибка, которую я получил при попытке открыть любую страницу администратора везде, была похожа на

Unable to render template "application/users/index"

Согласно docs первая часть пути к шаблону берется из пространства имен вызывающего контроллера. Но с тех пор, как я создал каталог module/Application/view/application/users/, он пытается взять все шаблоны Admin\Controller\UsersController оттуда, без оглядки на пространство имен.

Как я могу заставить Zend снова использовать пространство имен, без необходимости каждый раз принудительно использовать файл шаблона в действии?

(Используя Зенд 2.1.3)


person Lanbo    schedule 01.03.2013    source источник


Ответы (1)


Проблема заключалась в том, что я использовал одни и те же псевдонимы для имен контроллеров более чем в одном модуле. Поэтому я изменил их имена следующим образом:

'controllers' => array(
    'invokables' => array(
        'AdminIndex' => 'Admin\Controller\IndexController',
    ),
),

Конфигурация другого модуля использовала те же имена и, таким образом, просто переопределяла те из моего модуля администратора.

person Lanbo    schedule 05.03.2013