1

これは私が持っているものです:

コメント_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.ctpspam.ctpを作成しました

問題は、コメントがスパム($ result ['spam'] == 1)の場合、cakePHPがerror404レイアウトをロードすることです。しかし不思議なことに、スパムコメント(「SPAM !!!」)のメッセージが表示されます。

存在しないコメントの場合、正しいerror404レイアウトが読み込まれます。

何か案は?

編集:問題が修正されました。コードは正しかったが、サーバーを再起動する必要があった。必要ではないはずですが、これで問題が解決しました。ケーキが新しい*app_error.php*ファイルの正しいパスをたどっていなかった可能性があります。

4

1 に答える 1

0

私はすぐにあなたのセットアップ (CakePHP 1.3) を試しましたが、うまくいきました。

私の推測では、ファイル名またはクラス名のいずれかにタイプミスがあり、何かが見つからないために error404 を使用していると思われます。

これを確認した後、デバッガーをオンにするか、スローを開始できます

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

実行順序を決定するまで、ステートメントを実行します。

于 2011-04-07T01:37:13.957 に答える