2008-09-18 8 views
4

Ceci est ma première expérience d'utilisation de Zend Framework. J'essaie de suivre le tutoriel Quick Start. Tout fonctionnait comme prévu jusqu'à ce que j'ai atteint la section sur le Error Controller and View. Lorsque je navigue sur une page qui n'existe pas, au lieu de recevoir la page d'erreur que je reçois la copie d'écran d'erreur fatale (dans toute sa gloire):Zend Framework - ErrorHandler ne semble pas fonctionner comme prévu

Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in /home/.fantasia/bcnewman/foo.com/library/Zend/Controller/Dispatcher/Standard.php:249 Stack trace: #0 /home/.fantasia/bcnewman/foo.com/library/Zend/Controller/Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /home/.fantasia/bcnewman/foo.com/public/index.php(42): Zend_Controller_Front->dispatch() #2 {main} thrown in /home/.fantasia/bcnewman/foo.com/library/Zend/Controller/Dispatcher/Standard.php on line 249

Je ne crois pas que cela est causé par une erreur de syntaxe sur ma part (un copiée et collée du tutoriel contenu du fichier par exemple) et je crois que j'ai la structure de répertoire de l'application correcte:

./application 
./application/controllers 
./application/controllers/IndexController.php 
./application/controllers/ErrorHandler.php 
./application/views 
./application/views/scripts 
./application/views/scripts/index 
./application/views/scripts/index/index.phtml 
./application/views/scripts/error 
./application/views/scripts/error/error.phtml 
./application/bootstrap.php 
./public 
./public/index.php 

et enfin, la vue IndexController et index.phtml fonctionne.

Répondre

4

Vous avez ErrorHandler.php. Cela devrait être ErrorController.php. Les contrôleurs doivent tous être nommés en suivant le format de NameController.php. Puisque vous ne l'avez pas nommé correctement, le répartiteur ne peut pas le trouver.

+0

Erreur utilisateur définie. Merci pour la deuxième paire d'yeux. ~ b –

2

En supposant que vous avez le plugin ErrorController chargé dans votre contrôleur avant, assurez-vous que dans votre bootstrap que vous n'avez pas l'ensemble suivant:

$frontController->throwExceptions(true); 

Si ce paramètre est réglé alors des exceptions seront toujours être levé, que vous ayez ou non un jeu de contrôleurs d'erreurs.

+0

Avait le même problème que OP et c'était mon problème. Merci! J'ai oublié, j'ai laissé ça là-dedans. – leek