我在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
造成这种情况的原因是什么,我该如何解决?
答案 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");
你会找到一个声明,谁负责这个错误。只是纠正这个错误