これは私が持っているものです:
コメント_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');
}
そして、 app / views/errors内にerror404.ctpとspam.ctpを作成しました
問題は、コメントがスパム($ result ['spam'] == 1)の場合、cakePHPがerror404レイアウトをロードすることです。しかし不思議なことに、スパムコメント(「SPAM !!!」)のメッセージが表示されます。
存在しないコメントの場合、正しいerror404レイアウトが読み込まれます。
何か案は?
編集:問題が修正されました。コードは正しかったが、サーバーを再起動する必要があった。必要ではないはずですが、これで問題が解決しました。ケーキが新しい*app_error.php*ファイルの正しいパスをたどっていなかった可能性があります。