Zend Framework исключение недопустимого контроллера в NetBeans - PullRequest
0 голосов
/ 09 января 2012

Я создал один проект в localhost, и все мои запросы перенаправляются в файл htdocs / index.php. по ссылке http://localhost/TestProject/ код в index.php -

require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
$controller = Zend_Controller_Front::getInstance();
echo $controller->getControllerDirectory();
$controller->setControllerDirectory('/var/www/TestProject/include/Controllers');
$controller->dispatch();

все контроллеры находятся в каталоге include. я создал для контроллеров один в IndexController.php и другой TestController.php и в этих файлах я создал два действия indexAction () и displayAction ()

вот код для IndexController.php

Class IndexController extends Zend_Controller_Action{
    public function indexAction(){
        echo "Index Index Jamla";
    }
    public function displayAction(){
        echo "Index Display Jamla";
    }
}

теперь, когда я получаю доступ http://localhost/TestProject/ это показывает следующее исключение

Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with 
message 'Invalid controller specified (error)' in /usr/share/php/ 
libzend-frameworkphp/Zend/Controller/Dispatcher/Standard.php:248 `enter code here`
Stack trace: #0 /usr/share/php/libzend-framework-php/Zend/Controller/Front.php(954):
Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http),
Object(Zend_Controller_Response_Http)) #1 /var/www/TestProject/htdocs/index.php(14):
Zend_Controller_Front->dispatch() #2 {main} thrown in /usr/share/php/libzend-framework
php/Zend/Controller/Dispatcher/Standard.php on line 248 

Thnkx за помощь заранее.

1 Ответ

1 голос
/ 09 января 2012

Я думаю, что исключение выдается при отправке запроса. Затем фреймворк пытается загрузить контроллер error, которого, я полагаю, не существует в вашем каталоге include/Controllers. Вот почему в сообщении есть error "Invalid controller specified (error)".

Есть много причин, по которым фреймворк вызывает исключение, но я думаю, что вы не определили сценарии представления. Таким образом, они не могут загрузить, и это вызовет исключение.

У вас есть две возможности:

  • Создайте скрипт просмотра в соответствующем месте. Для действия индекса контроллера индекса это будет include/views/scripts/index/index.phtml. Путь по умолчанию $yourControllerDir . "/../views/scripts/{$controllerName}/{$actionName}.phtml" (в псевдокоде).
  • Отключить рендеринг скрипта вида по умолчанию, используя следующий код:

    // ... your original code
    $controller->setParam('noViewRenderer', true); // disable view rendering
    $controller->dispatch();
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...