2010-01-25 182 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");從上到下每個語句後

,你會發現出一個聲明,誰負責這個錯誤。只是糾正這個錯誤