2011-04-06 4 views
1

C'est ce que j'ai:sur mesure cakeError

comments_controller.php

if (empty($result)) { //$result is empty if comment does not exist 
    $this->cakeError('error404', array('message'=>'Comment not found')); 
} elseif ($result['spam'] == 1) { 
    $this->cakeError('spam', array('message'=>'SPAM!!!')); 
} 

app_error.php

function error404($params) { 
    $this->controller->set('title', 'Page not found'); 
    $this->controller->set('message', $params['message']); 
    $this->_outputMessage('error404'); 
} 

function spam($params) { 
    $this->controller->set('title', 'Spam'); 
    $this->controller->set('message', $params['message']); 
    $this->_outputMessage('spam'); 
} 

Et je créé error404.ctp et le spam .ctp à l'intérieur Le problème est que lorsque le commentaire est un spam ($ result ['spam'] == 1), cakePHP charge la mise en page error404. Mais étrangement, il montre le message pour un commentaire de spam ("SPAM !!!").

Lorsqu'il s'agit d'un commentaire qui n'existe pas, la mise en page error404 correcte est chargée.

Des idées?

EDIT: Problème résolu. Le code était correct, mais le serveur a dû être redémarré. Cela ne devrait pas être nécessaire, mais c'est ce qui a réglé le problème. Peut-être que cake ne suivait pas le bon chemin du nouveau fichier * app_error.php *.

+0

Quelle est la valeur de debug dans app/config/core.php? – dhofstet

+0

Configure :: write ('debug', 0); Il est maintenant corrigé. – rlcabral

+0

Cake Erreur semble assez drôle. –

Répondre

0

J'ai très vite essayé votre configuration (CakePHP 1.3) et ça a bien fonctionné.

Ma meilleure supposition est que vous avez une faute de frappe dans l'un des noms de fichiers ou de classes et il utilise error404 car il ne trouve pas quelque chose.

Après avoir vérifié ce que je tournerais le débogueur, ou vous pouvez commencer à lancer dans

die('got here: ' . __METHOD__ . __LINE__); 

déclarations jusqu'à ce que vous travaillez l'ordre d'exécution.

+0

Après avoir fait ce que vous avez mentionné, j'ai remarqué que le gâteau n'attrapait pas les choses comme il se doit. J'ai essayé de redémarrer Apache et pour une raison quelconque, il a résolu le problème. Bizarre. – rlcabral

+0

Heureux qu'il soit corrigé. En passant, il y a une note intéressante sur les erreurs et les 404 ici: http://book.cakephp.org/view/1581/Divers – contrebis