これは TOWN Advent Calendar 2018 25日目のエントリーです。
今回はお仕事と関係なく、Laravelのお話。
laravelcollective
2018年においてPHPのフレームワークといえば、Laravel一強な感じもありますがLaravel本体のアップデートも頻繁に行われており、Larvel5からFormはコアモジュールから削除されていて、LaravelCollectiveという別プロジェクトに移管されていたりします。
ちなみにインストールするときには
composer require "laravelcollective/html":"^5.X.0"
のようにLaravelのバージョンに合わせたバージョンをインストールする必要があります。
bladeで表示を切り替える
Request::is()でURLの一致判定が行なえます。ワイルドカードも使用可能です。
の isActiveUrl と組み合わせることで、こんな感じで共通パーツだけど条件によって表示を切り替える事が可能になります。
@if(Request::is('posts*'))
<a class="navbar-brand" href="{{ action('PostController@index') }}">{{ __('Roadmap') }}</a>
<ul class="navbar-nav">
<li class="nav-item {{ isActiveUrl('posts') }} ">
<a href="{{ action('PostController@index') }}" class="nav-link">{{ __('List') }}<div class="ripple-container"></div></a>
</li>
<li class="nav-item {{ isActiveUrl('posts/create') }} ">
<a href="{{ action('PostController@create') }}" class="nav-link">{{ __('Register') }}</a>
</li>
</ul>
@endif
なお、LaravelのURLでは
みたいに最後に「/」がつかないケースがあるので、
@if(Request::is('blogs/*'))
みたいなパターンだとマッチしないことがあります。