Laravelにてbladeにテンプレートとしてヘッダーやフッターを作成した時に特定のページには表示させたくないメニューなどがある場合に名前付きルートを元に特定のページに表示させない方法についてchatGPTなどを使用して調べていた時のことをまとめてみました。
拙い内容ですが、最後まで読んでいただけると幸いです。
1.以下のようなコードがあったとします。
pタグの部分を表示しないようにしたいとします。
<header>
<div class="header-container">
<div class="header-wrapper">
<div class="header-outer">
<div class="header-inner">
<p>ここを特定のページで表示させないようにする</p>
</div>
</div>
</div>
</div>
</header>
2.Route::currentRouteName()を使う。
ルーティングにnameにて命名した名前付きルート使用します。たとえば、命名したルートのhoge.createでpタグ部分を表示させたくない場合は、Route::currentRouteName()を使って対応します。
<header>
<div class="header-container">
<div class="header-wrapper">
<div class="header-outer">
<div class="header-inner">
@if(Route::currentRouteName() !== 'hoge.create')
<p>ここを'hoge.create'で表示させない</p>
@endif
</div>
</div>
</div>
</div>
</header>
3.複数ある場合 in_arrayを一緒に使う。
命名したルートのhoge.createとhoge.editでpタグ部分を表示させたくない場合は、Route::currentRouteName()と配列を使って対応します。
<header>
<div class="header-container">
<div class="header-wrapper">
<div class="header-outer">
<div class="header-inner">
@if(!in_array(Route::currentRouteName(),['hoge.create', 'hoge.edit']))
<p>ここを'hoge.create'と'hoge.edit'で表示させない</p>
@endif
</div>
</div>
</div>
</div>
</header>
以上の方法で、実施することができます。
拙い内容ですが、最後まで読んでいただきありがとうございました。