saurabh
saurabh

Reputation: 51

Uncaught exception 'Zend_Controller_Dispatcher_Exception'

I am getting the following error on zend framework:

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

What is causing this, and how can I fix it?

Upvotes: 5

Views: 19360

Answers (6)

PankajR
PankajR

Reputation: 340

Main problem is not your errorController.php file. Main problem is error in your code if code will be free from error, your code will not ask about errorController.php

In your controller file action just put die("stop execution"); from top to bottom after each statement

you will find out a statement, who is responsible for this error. just rectify this error

Upvotes: 0

kaushik
kaushik

Reputation: 2512

Zend is looking for the view script inside the /application/views/scripts directory. If you do not want to use automatic rendering, then in the controller class use:

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

This will stop automatic rendering and your problem will be solved.

Upvotes: 2

Meabed
Meabed

Reputation: 3938

Zend is looking for the Controller in the normal controllers dir. So Set this config

resources.frontController.defaultModule = "Default"

and create your Default_ErrorController class in the Default Module dir.

it will work fine

Upvotes: 0

Shahid
Shahid

Reputation: 666

In index.php file write

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

Alternatively you can write following line in [production] section of application.ini file:

resources.frontController.params.useDefaultControllerAlways = 1

Upvotes: 10

freemanwest
freemanwest

Reputation: 21

I got a same error ,and then i find out the reason,it's just a syntax error in my code.

Upvotes: 2

user228395
user228395

Reputation: 1176

You have probably (re)moved/edited the ErrorController.php file, which can be found in

/application/controllers/

An other possibility is that you have configured your application to look after an not-existing Error controller.

Upvotes: 6

Related Questions