Laravelのエラーページをカスタムしたいし、自動でレンダリングするにはどうすればいいんだろう…
こんな疑問を解決します。
本記事では、404エラーが発生した場合に、Laravelデフォルトのエラーページだと味気ないからカスタムしたいって人におすすめの記事です。
↓Laravelデフォルトのエラーページ
結論、resources/views/errors/404.blade.phpを作成することで、404エラー発生時に、自動的にLaravelが404.blade.phpを読みにいきます。
なので、404.blade.phpを自分好みのエラーページにすることで、解決できます。
休日で空いた時間の暇つぶしを探せるアプリを公開しています。
404エラーページをカスタムする流れ
以下のようにコントローラーでabort(404)と記載することで、404エラーを発生させます。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ItemController extends Controller
{
public function index()
{
abort(404);
return view('item.index');
}
}
ただ、このままでは以下のようにLaravelデフォルトの404 | NOT FOUNDが表示されるだけです。
この404エラーページをカスタマイズし、自動的にレンダリングする方法がLaravelにはあります。
resources/views/にerrorsディレクトリを作成し、404.blade.phpを作成します。
あとは404.blade.phpを編集すれば独自の404エラーページが出来上がります。
試しに、以下のように書いてみて404エラーを呼ぶと、記述した内容が反映されています。
<p>404エラーです!!</p>
404エラーだから404.blade.phpと、エラーに対応するファイル名にします。すると、404発生時にLaravelが自動的にこのファイルを呼び出してくれます。
404以外にも401,403,500エラーなども同様で、resources/views/errorsに401.blade.php,403.blade.php,500.balde.phpと書けばOKです。
Laravelのデフォルトエラーファイルを一括で作成する
404.balde.phpは作成したけれど、500も401もいちいち手動で作成するの面倒だわ…
って時は、コマンドで一括作成できます。
Laravelのデフォルトエラーページをコマンドで作成したい場合は、以下を叩きます。
php artisan vendor:publish --tag=laravel-errors
これで以下のように、ズラーっとエラーページのファイルが作成されました。
Laravelデフォルトのエラーページは以下のようなレイアウトです。
あとは、404エラーの時みたいに、500.blade.phpに独自に書いていけばOKです。
休日で空いた時間の暇つぶしを探せるアプリを公開しています。
コメント