cakePHP 2でエラー404ページを作りたい
CakePHP(2.x系)でエラー404ページを作る方法です。
いろんなブログにやり方が書いてありますが、どれも試してもなかなかうまくいかない・・。
そんな中で、自分が試してうまくいった方法を書きます。
(ちなみに下記作業は /Config/core.php の debugを0にセットした本番環境の設定で行ってます)
■その1 error400.ctpファイルを編集する
「app/View/Errors/error400.ctp」のファイルを編集します。
ここでセットした内容が404エラー時に出力されます。
お目当てなのは「404エラー」ですが、CakePHPでは404エラーのとき400番のエラーファイルが参照されるようです。
設定パラメータがいろいろ面倒なので、私の場合はヒアドキュメントで出力したい内容のHTMLを丸ごと全部記述しました。
<?php $this->layout = "error"; echo <<< EOF //ここに出力したいHTMLを全て記述 EOF; ?>
異常系出力ページを作りたい場合は「error500.ctp」ファイルに同じ修正を加えるとできます。
■その2 レイアウトファイルを編集する
「app/View/Layouts/error.ctp」を作成します。
その1の作業で「layout = "error"」をセットしてるため、レイアウトとしてこのファイルを参照するようになります。
設定パラメータがいろいろ面倒なので、私の場合は下記のように「error400.ctp」のヒアドキュメントの内容を丸ごと出力するようにしました。
//たった一行! <?php echo $this->fetch('content'); ?>
以上です!