Laravel4、404エラーページの表示の仕方
タグ: Laravel4
Laravel4ではエラーページが特別扱いされなくなりました。viewsフォルダーの中、好きなところに好きな名前で作成し、普通にビューとして表示できます。
404エラー
一番出す機会が多いのがこれですね。
Laravel4から404エラーは例外で上がってきます。これを拾い、returnでエラーレスポンスを返してあげれば良いわけです。
404エラーは2種類の例外で上がってきます。最初はApp::abort()を使用する方法です。
App::abort('404', 'ページが見つかりません。');
もうひとつはSymfonyのNotFoundHttpException例外を投げる方法です。
throw new Symfony\Component\HttpKernel\Exception\NotFoundHttpException('ページがありません。');
例外を拾うハンドラーを記述するのはapp/start/global.phpです。アプリケーションのエラーハンドラーが書かれているところに次のコードを入れてください。
App::missing( function ( $e ) { return Response::view('errors.404', array(), '404'); } );
例外に渡したメッセージをビューに表示したい場合、次のコードで渡せます。ビュー上$messageで取得できます。
App::missing( function ( $e ) { return Response::view('errors.404', array('message'=>$e->getMessage()), '404'); } );
尚、この例外はSymfonyのHttpException例外を捕らえることで、他のコードと一緒に捕まえることも可能です。
長くなるので、その他の例外の捕まえ方は別記事で紹介します。