Laravel8 マルチログイン時、登場人物によってエラーページの内容を変える方法

前提条件

■登場人物
・サイト運営: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

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です