未捕获的异常'Zend_Controller_Dispatcher_Exception'

时间:2010-01-25 06:12:11

标签: zend-framework

我在zend框架上遇到以下错误:

Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in F:\wamp\www\helloworld\library\Zend\Controller\Dispatcher\Standard.php:245 
Stack trace: 
#0 F:\wamp\www\helloworld\library\Zend\Controller\Front.php(946):Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))  
#1 F:\wamp\www\helloworld\library\Zend\Controller\Front.php(212): Zend_Controller_Front->dispatch()  
#2 F:\wamp\www\helloworld\web_root\index.php(10): Zend_Controller_Front::run('../application/...')  
#3 {main} thrown in F:\wamp\www\helloworld\library\Zend\Controller\Dispatcher\Standard.php on line 245

造成这种情况的原因是什么,我该如何解决?

6 个答案:

答案 0 :(得分:10)

在index.php文件中写

$frontController->setParam('useDefaultControllerAlways', true);
$frontController->dispatch();

或者,您可以在application.ini文件的[production]部分中编写以下行:

resources.frontController.params.useDefaultControllerAlways = 1

答案 1 :(得分:6)

您可能已经(重新)移动/编辑了ErrorController.php文件,该文件可以在

中找到
/application/controllers/

另一种可能性是您已将应用程序配置为管理不存在的错误控制器。

答案 2 :(得分:2)

我得到了同样的错误,然后我找出原因,这只是我的代码中的语法错误。

答案 3 :(得分:2)

Zend正在 / application / views / scripts 目录中查找视图脚本。如果您不想使用自动渲染,那么在控制器类中使用:

public function init()
{
    $this->_helper->viewRenderer->setNoRender();
}

这将停止自动渲染,您的问题将得到解决。

答案 4 :(得分:0)

Zend正在寻找普通控制器目录中的Controller。 所以设置这个配置

resources.frontController.defaultModule = "Default"

并在Default Module目录中创建Default_ErrorController类。

它会正常工作

答案 5 :(得分:0)

主要问题不在于您的errorController.php文件。主要问题是代码中的错误,如果代码没有错误,您的代码将不会询问errorController.php

在您的控制器文件操作中,只需在每个语句后从上到下放置die("stop execution");

你会找到一个声明,谁负责这个错误。只是纠正这个错误