netbeans中无效控制器的Zend Framework异常



我在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提前提供的帮助。

我认为在调度请求时抛出了一个异常。然后,框架尝试加载error控制器,我猜它在include/Controllers目录中不存在。这就是消息"Invalid controller specified (error)"中存在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();
    

最新更新