![](https://www.kamome-susume.com/wp-content/uploads/2020/07/2652730.jpg)
Laravelのエラーページをカスタムしたいし、自動でレンダリングするにはどうすればいいんだろう…
こんな疑問を解決します。
本記事では、404エラーが発生した場合に、Laravelデフォルトのエラーページだと味気ないからカスタムしたいって人におすすめの記事です。
↓Laravelデフォルトのエラーページ
![404エラー](https://www.kamome-susume.com/wp-content/uploads/2022/02/b4264e1de1012d25c03f373d342d0adb-1024x539.png)
![404エラー](https://www.kamome-susume.com/wp-content/uploads/2022/02/b4264e1de1012d25c03f373d342d0adb-1024x539.png)
結論、resources/views/errors/404.blade.phpを作成することで、404エラー発生時に、自動的にLaravelが404.blade.phpを読みにいきます。
なので、404.blade.phpを自分好みのエラーページにすることで、解決できます。
![](https://www.kamome-susume.com/wp-content/uploads/2020/12/a9e887bfa478fbd8a741e96287362251-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2020/12/a9e887bfa478fbd8a741e96287362251-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2021/07/041ddc3101b587b3e24a9ce21e659fe7-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2021/07/041ddc3101b587b3e24a9ce21e659fe7-300x158.webp)
休日で空いた時間の暇つぶしを探せるアプリを公開しています。
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エラー](https://www.kamome-susume.com/wp-content/uploads/2022/02/b4264e1de1012d25c03f373d342d0adb-1024x539.png)
![404エラー](https://www.kamome-susume.com/wp-content/uploads/2022/02/b4264e1de1012d25c03f373d342d0adb-1024x539.png)
この404エラーページをカスタマイズし、自動的にレンダリングする方法がLaravelにはあります。
resources/views/にerrorsディレクトリを作成し、404.blade.phpを作成します。
![404](https://www.kamome-susume.com/wp-content/uploads/2022/02/ec10e774b4cae014385df6002275d41c.png)
![404](https://www.kamome-susume.com/wp-content/uploads/2022/02/ec10e774b4cae014385df6002275d41c.png)
あとは404.blade.phpを編集すれば独自の404エラーページが出来上がります。
試しに、以下のように書いてみて404エラーを呼ぶと、記述した内容が反映されています。
<p>404エラーです!!</p>
![](https://www.kamome-susume.com/wp-content/uploads/2022/02/97d50ac0cf757c9d4b3b101bbacdad60.png)
![](https://www.kamome-susume.com/wp-content/uploads/2022/02/97d50ac0cf757c9d4b3b101bbacdad60.png)
404エラーだから404.blade.phpと、エラーに対応するファイル名にします。すると、404発生時にLaravelが自動的にこのファイルを呼び出してくれます。
404以外にも401,403,500エラーなども同様で、resources/views/errorsに401.blade.php,403.blade.php,500.balde.phpと書けばOKです。
Laravelのデフォルトエラーファイルを一括で作成する
![](https://www.kamome-susume.com/wp-content/uploads/2020/07/2652730.jpg)
![](https://www.kamome-susume.com/wp-content/uploads/2020/07/2652730.jpg)
![](https://www.kamome-susume.com/wp-content/uploads/2020/07/2652730.jpg)
404.balde.phpは作成したけれど、500も401もいちいち手動で作成するの面倒だわ…
って時は、コマンドで一括作成できます。
Laravelのデフォルトエラーページをコマンドで作成したい場合は、以下を叩きます。
php artisan vendor:publish --tag=laravel-errors
これで以下のように、ズラーっとエラーページのファイルが作成されました。
![](https://www.kamome-susume.com/wp-content/uploads/2022/02/e93c1c7cc0204431149b9426c6956241.png)
![](https://www.kamome-susume.com/wp-content/uploads/2022/02/e93c1c7cc0204431149b9426c6956241.png)
Laravelデフォルトのエラーページは以下のようなレイアウトです。
![500エラー](https://www.kamome-susume.com/wp-content/uploads/2022/02/adebf0c2253e0079f32d4c73d0648fe0-1024x634.png)
![500エラー](https://www.kamome-susume.com/wp-content/uploads/2022/02/adebf0c2253e0079f32d4c73d0648fe0-1024x634.png)
あとは、404エラーの時みたいに、500.blade.phpに独自に書いていけばOKです。
![](https://www.kamome-susume.com/wp-content/uploads/2020/12/a9e887bfa478fbd8a741e96287362251-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2020/12/a9e887bfa478fbd8a741e96287362251-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2021/07/041ddc3101b587b3e24a9ce21e659fe7-300x158.webp)
![](https://www.kamome-susume.com/wp-content/uploads/2021/07/041ddc3101b587b3e24a9ce21e659fe7-300x158.webp)
休日で空いた時間の暇つぶしを探せるアプリを公開しています。
コメント