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例外を捕らえることで、他のコードと一緒に捕まえることも可能です。

長くなるので、その他の例外の捕まえ方は別記事で紹介します。