前提条件
■登場人物
・サイト運営:admin
・顧客:customer
・閲覧者:user
■エラー時に参照するbladeファイル
/resources/views/errors
404.blade.php
・
・
500.blade.php
大きくレイアウトを変えるような変更ではなく、登場人物によってリンク先を変える程度のことを行う。
各blade.phpの”TOPへ”の箇所を以下のように記述すれば良さそうだけど、findOrFail()などで404の場合は意図した処理になるが、存在しないURLを叩いた場合にはならない。
つまり、ミドルウェアのguardを突破して各登場人物のコントローラーでの処理で発生した404はOKだけど、”admin”や”customer”で始まる存在しないURLの場合はelseに入る。
@if(auth('admin')->check())
<p><a href="{{ route('admin.top') }}">admin TOPへ</a></p>
@elseif(auth('customer')->check())
<p><a href="{{ route('customer.top') }}">customer TOPへ</a></p>
@else
<p><a href="{{ route('user.top.top') }}">user TOPへ</a></p>
@endif
なので結局URLでそれぞれの登場人物を判断するのが良い。
@if(request()->is('admin/*'))
<p><a href="{{ route('admin.top') }}">TOPへ</a></p>
@elseif (request()->is('customer/*'))
<p><a href="{{ route('customer.top') }}">TOPへ</a></p>
@else
<p><a href="{{ route('user.top.top') }}">TOPへ</a></p>
@endif