Je me demandais pourquoi ma page d'erreur provoquait le non rendu de certaines pages de mon site , mais je me suis rendu compte que c'est parce que AppError étend ErrorHandler au lieu de AppController. Cela a causé certaines variables que j'ai défini dans la méthode beforeFilter de AppController pour ne pas être envoyé à la vue. Comme je ne peux pas accéder aux variables de session à partir d'AppError, je pense que je pourrais utiliser l'outil classRegistry pour instancier quelque chose qui pourrait simplement copier et coller le reste du code depuis le module beforeFilter d'AppController ... cela ne fonctionne pas, et cela ne semble pas être une solution très élégante. Est-ce que quelqu'un a des indices sur ce que serait le meilleur moyen d'aborder cela? Merci, David.CakePHP - Problèmes avec ErrorHandler ne s'étend pas AppController
2
A
Répondre
6
Votre classe AppError a une instance de contrôleur. Vous pouvez appeler le beforeFilter manuellement:
<?php
class AppError extends ErrorHandler {
function error404() {
$this->controller->beforeFilter();
parent::error404();
}
}
?>
1
Dans CakePHP 2, vous pouvez faire quelque chose comme cela pour obtenir le même effet. Dans app/Config/bootstrap.php
, ajoutez cette ligne:
Configure::write('Exception.renderer', 'AppExceptionRenderer');
Ensuite, créez un fichier app/Lib/Error/AppExceptionRenderer.php
avec ce code:
App::uses('ExceptionRenderer', 'Error');
class AppExceptionRenderer extends ExceptionRenderer {
protected function _outputMessage($template) {
$this->controller->beforeFilter();
$this->controller->render($template);
$this->controller->afterFilter();
$this->controller->response->send();
}
}
Décrite plus généralement ici: http://book.cakephp.org/2.0/en/development/exceptions.html#using-a-custom-renderer-with-exception-renderer-to-handle-application-exceptions
Edit: lien Mise à jour au point pour corriger emplacement du livre CakePHP 2.0 en date du 05 juillet 2012.
Questions connexes
- 1. Zend Framework - ErrorHandler ne semble pas fonctionner comme prévu
- 2. WCF ErrorHandler
- 3. Cakephp, problèmes de performance étranges
- 4. AppDelegate ou AppController
- 5. Cakephp + ckfinder Les sessions ne semblent pas fonctionner
- 6. cakephp isAuthorized() n'étant pas appelé
- 7. Erreur AppController: Index hors limites
- 8. cakephp avec oracle: pas de groupe par?
- 9. $ paginateur-> nombres(); ne fonctionne pas dans CakePHP
- 10. Enregistrement avec HABTM dans CakePHP
- 11. instance pour le fichier ne fonctionne pas dans CakePHP
- 12. CakePHP ne fonctionne pas sur l'hébergement partagé (Godaddy)
- 13. Message Ajax ne renvoyant pas la valeur du contrôleur cakephp
- 14. CakePHP avec jquery .load
- 15. problème avec CakePHP en utilisant autoModel quand il ne doit pas
- 16. CakePHP - basic hasAndBelongsToMany problème
- 17. Phalanger avec cakephp
- 18. SSI Jboss ne comprend pas html (problèmes de contexte)
- 19. Pagination CakePHP avec les modèles HABTM
- 20. Pourquoi les erreurs de validation ne s'affichent-elles pas dans CakePHP?
- 21. Pagination avec l'association hasMany CakePHP
- 22. Modèle CakePHP avec "Entre dates"
- 23. J'ai des problèmes avec cakePHP Bake et l'une des tables de base de données
- 24. Ballon ne pas apparaître avec NotifyIcon.ShowBalloonTip
- 25. C - Problèmes avec des pointeurs vers des pointeurs, peut ne pas sembler le voir
- 26. Avoir des problèmes avec net :: ssh :: multi ne peut pas l'exiger! Ruby
- 27. CakePHP helpers et i18n
- 28. BindingSource.Filter ne fonctionne pas avec '! ='
- 29. Des problèmes connus avec msxml3.dll sous Windows 2003?
- 30. Problèmes avec LINQ
Merci beaucoup! J'ai littéralement été sur google pour toujours ... – David