Необработанное исключение «Zend_Controller_Dispatcher_Exception» с сообщением «Недопустимый класс контроллера (« Error_ErrorController ») - PullRequest
1 голос
/ 09 апреля 2011

я создаю 3 модуля для моего проекта как это:

приложение / модуль / админ

приложение / модуль / по умолчанию

приложение / модуль / ошибка

каждый модуль имеет свой cnotroller, view, layout folder. в модуле по умолчанию все правильно, но когда я зашел в модуль администратора, я увидел эту ошибку (www.domain.com/public/admin)

Неустранимая ошибка: необработанное исключение 'Zend_Controller_Dispatcher_Exception' с сообщением 'Неверный класс контроллера ("Error_ErrorController") "в E: \ xampp \ php \ PEAR \ Zend \ Controller \ Dispatcher \ Standard.php: 347 Трассировка стека: # 0 E : \ xampp \ php \ PEAR \ Zend \ Controller \ Dispatcher \ Standard.php (256): Zend_Controller_Dispatcher_Standard-> loadClass ('ErrorController') # 1 E: \ xampp \ php \ PEAR \ Zend \ Controller \ Front.php (946 ): Zend_Controller_Dispatcher_Standard-> dispatch (Объект (Zend_Controller_Request_Http), Объект (Zend_Controller_Response_Http)) # 2 E: \ zend_progamming \ donyaye_fan_zend \ application \ Bootstraont: файл_приложения_3: \\\ {\\\> public \ index.php (5): Bootstrap-> runApp () # 4 {main}, брошенный в E: \ xampp \ php \ PEAR \ Zend \ Controller \ Dispatcher \ Standard.php в строке 347

это мой загрузочный код, связанный с этой ошибкой:

$frontController->addModuleDirectory(ROOT_DIR . '/application/modules'); 
$frontController->setDefaultModule('default');
$frontController->registerPlugin(new Places_Controller_Plugin_ModuleSetup());
$frontController->registerPlugin(new Zend_Controller_Plugin_ErrorHandler(array(
        'module'     => 'error',
        'controller' => 'error',
        'action'     => 'error'
    )));

и это мой класс modulesetup:

class Places_Controller_Plugin_ModuleSetup  extends Zend_Controller_Plugin_Abstract{    public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
{

    // Set the layout directory for the loaded module
    $layoutPath = ROOT_DIR . '/application/modules/' . $request->getModuleName() . '/layouts/scripts/';
    Zend_Layout::startMvc(array('layoutPath' =>$layoutPath));

    $autoloader = new Zend_Application_Module_Autoloader(array(
        'namespace' => '',
        'basePath' => ROOT_DIR . "/modules/",
    ));
    $autoloader->addResourceTypes(array(
    'admin' => array(
            'path'      => 'admin/',
            'namespace' => 'admin'
        ),
        'error' => array(
            'path'      => 'error/',
            'namespace' => 'error')));

}

} * * тысяча двадцать-один

Ответы [ 2 ]

3 голосов
/ 28 апреля 2011

я нашел ответ: в errorController необходимо поместить имя каталога ошибок перед именем класса, например error_errorController

0 голосов
/ 20 августа 2014

errorControl.php недоступен в вашей папке контроллеров.если этот файл будет доступен на их месте, пользовательские ошибки будут отображаться из файла errorControl.php.

Основная проблема: ваш код содержит ошибку в файле php, поэтому программа ищет файл errorControl.php.если вы удалите ошибку из php файла, эта ошибка не возникнет.

...