2010-01-25 226 views
5

我正在上Zend框架以下错误:未捕获的异常“Zend_Controller_Dispatcher_Exception”

 
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 

是什么原因造成的,我怎么能解决这个问题?

回答

5

你有可能(重新)移动/编辑ErrorController.php文件,它可以在

/application/controllers/ 

找到的另一种可能性是,您已经配置您的应用程序中不存在错误控制器照顾。

+0

仍然无法正常工作 – saurabh 2010-01-25 08:52:01

+0

这解决了我的问题。谢谢 – Debashis 2013-04-05 07:41:09

2

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

10

在index.php文件写

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

或者,也可以写下面的行中的application.ini文件[生产]部分:

resources.frontController.params.useDefaultControllerAlways = 1

+1

谢谢,这帮助我找到了类似的问题。我有一个现有的应用程序,我决定看看如果我重新组织默认控制器并将它们移动到模块文件夹会发生什么。我为测试做了一个Git分支,但是在切换到另一个分支之后,这些文件夹仍然存在。显然,Zend首先在/ application/modules/default中检查模块版本。由于空的modules/default文件夹,我的应用程序崩溃。 – David 2013-04-23 20:55:09

0

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

resources.frontController.defaultModule = "Default" 

,并在默认模块目录创建Default_ErrorController类。

它会正常工作

2

Zend公司正在寻找视图脚本/应用/视图/脚本里面目录。如果你不想使用自动渲染,然后在控制类应用:

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

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

0

主要问题不是你的errorController.php文件。主要的问题是错误在你的代码,如果代码将是无差错,你的代码不会问errorController.php

在你的控制文件的操作只是把die("stop execution");从上到下每个语句后

,你会发现出一个声明,谁负责这个错误。只是纠正这个错误