2010-01-25 16 views
5

estoy recibiendo el siguiente error en Zend Framework:no detectada excepción '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 

qué está causando esto y cómo puedo solucionarlo?

Respuesta

5

es probable que haya (re) movido/editado el archivo ErrorController.php, que se puede encontrar en

/application/controllers/ 

Otra posibilidad es que se ha configurado la aplicación para cuidar de un controlador de errores no-existente .

+0

Todavía no funciona – saurabh

+0

Esto solucionó mi problema. Gracias – Debashis

2

Recibí el mismo error, y luego descubrí la razón, es solo un error de sintaxis en mi código.

10

En archivo index.php escribir

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

alternativa, se puede escribir la línea siguiente en la sección [de producción] del archivo application.ini:

resources.frontController.params.useDefaultControllerAlways = 1

+1

Gracias, eso me ayudó a encontrar un problema similar. Tenía una aplicación existente y decidí ver qué pasaría si reorganizaba los controladores predeterminados y los movía a la carpeta de módulos. Hice una sucursal de Git para la prueba, pero las carpetas continuaron después de cambiar a otra sucursal. Zend aparentemente busca primero la versión de los módulos en/application/modules/default. Mi aplicación se bloqueó debido a los módulos vacíos/carpeta predeterminada. – David

0

Zend es buscando el controlador en el directorio de controladores normales. Así Establecer esta configuración

resources.frontController.defaultModule = "Default" 

y crear su clase Default_ErrorController en el directorio por defecto del módulo.

no tendrán ningún problema directorio

2

Zend está buscando el script de vista dentro de las /application/views/scripts. Si no desea utilizar la representación automática, a continuación, en el uso clase controlador:

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

Esto detendrá la representación automática y su problema será resuelto.

0

El problema principal no es el archivo errorController.php. El principal problema es el error en el código si el código estará libre de error, el código no le preguntará acerca de errorController.php

En su acción de archivo controlador sólo hay que poner die("stop execution"); de arriba a abajo después de cada declaración

encontrará una declaración, quién es responsable de este error. simplemente rectifique este error

Cuestiones relacionadas