Вот что у меня есть:
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');
}
И я создал error404.ctp и spam.ctp внутри app / views / errors
Проблема в том, что когда комментарийспам ($ result ['spam'] == 1), cakePHP загружает макет ошибки 404.Но как ни странно, он показывает сообщение для спам-комментария («СПАМ !!!»).
Если это комментарий, который не существует, загружается правильный макет ошибки 404.
Любойидеи?
РЕДАКТИРОВАТЬ: Проблема исправлена.Код был верным, но сервер пришлось перезапустить.Это не должно быть необходимо, но именно это решило проблему.Возможно, торт не указывал правильный путь к новому файлу * app_error.php *.