Использование модулей в ZendFramework 1.8.2 - PullRequest
0 голосов
/ 10 июня 2009

Я пытаюсь использовать модули в проекте ZF 1.8, но не могу получить рабочую маршрутизацию к действиям модулей.

Вот пример, я создаю маршрут "/ test", который указывает на модуль 'test', контроллер 'ttt' и действие 'index':

$router->addRoute(
    $name, 
    new Zend_Controller_Router_Route('test',
        array('controller' => 'ttt', 
              'module' => 'test',
              'action' => 'index'))
);

Я инициализирую каталог модулей (создаю директорию "ttt", требуемый контроллер и классы представления) и задаю его во время начальной загрузки:

$front->addModuleDirectory(dirname(__FILE__) . '/modules');

Но когда я открываю URL, например example.com/test, я получаю сообщение об ошибке типа «Сообщение: указан неверный контроллер (ttt)».

Что не так с моим примером?

Fixed . Добавил следующую строку в application.ini:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

Ответы [ 2 ]

3 голосов
/ 10 июня 2009

Для контроллеров, не входящих в модуль по умолчанию, необходимо добавить префикс имени класса контроллера к имени модуля и подчеркиванию.

т.е.

class Test_TttController extends Zend_Controller_Action
{

}
0 голосов
/ 10 июня 2009

Вы скопировали другой файл класса Controller, переименовали его и забыли изменить объявление класса на TttController внутри файла? Вы получите это сообщение об ошибке, если контроллер действительно существует. Убедитесь, что это выглядит так:

class TttController extends Zend_Controller_Action
{
...

Конечно, я могу быть далеко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...