2009 年 3 月 11 日
CakePHPで404エラー画面のレイアウトを「default.ctp」ではなく別のレイアウトを指定する
CakePHP製のPC+携帯混合のWebサイトで、404のエラー画面が、携帯サイトでもPCと同じでかくてたくさんの画像いっぱいのエラー画面になって問題になりました。
原因を調べていたら、携帯版でもエラー画面はPC用レイアウトとして使っていた「default.ctp」を使用してしまうことが判明(携帯版では「mobile.ctp」を使用していた)。
そこで、CakePHPで404のエラー画面を別のレイアウトで表示するように変更してみた。
<?php class AppError extends ErrorHandler { function error404($params) { $this->controller->layout = "simple"; parent::error404($params); } } ?>
携帯でもPCでも表示できるような簡単なHTMLでレイアウトファイル「app/views/layouts/simple.ctp」を作成する。これで携帯版でもPCばりの画像が出なくなり、シンプルなエラー画面になりました。
参考