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

时间:2012-01-09 16:57:33

标签: zend-framework netbeans

我在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 
提前获得帮助。

1 个答案:

答案 0 :(得分:1)

我认为在调度请求时会抛出异常。然后框架尝试加载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();