はじめに
こんばんは。
Laravelで404とか500とかのエラーページを修正したいとかってあると思います。
今回はそれで、デフォルトのディレクトリ以外の場所の指定をしたい場合の備忘録です。
本題
だいたい、こちらの カスタムHTTPエラーページ
とかを参照して、エラーページをカスタマイズしていくと思います。
ただ、レポジトリが一緒でadmin用、front用みたいに2サイト分の情報が入っているプロジェクトの場合、テンプレートも分けないといけません。
だいたい resources/views
のしたに admin
customer
みたいな感じでさらにディレクトリを掘ると思います。
しかしこれだと エラーページをカスタマイズしたいとなった場合、そのままでどちらも同じものを使うことになります。
それは、 エラーページが resources/views/errors/
を参照するようになっているからです。
これを回避する方法は、 app/Exceptions/Handler.php
をカスタムする必要があります。
といっても 継承しているクラスから、 registerErrorViewPaths()
メソッドをオーバライドするだけです。
僕の場合は以下のような感じで対応してます。
<?php /** * Register the error template hint paths. * * @return void */ protected function registerErrorViewPaths() { $paths = collect(config('view.paths')); View::replaceNamespace('errors', $paths->map(function ($path) { if (config('app.project') === 'admin') { $path .= '/admin'; } elseif (config('app.project') === 'customer') { $path .= '/customer'; } return "{$path}/errors"; })->push(__DIR__ . '/views')->all()); }
終わりに
そういえば仕事がもしかしたら途切れるかもしれません。
お仕事ください。
現場からは以上です。