Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Laravelのbladeで条件によって表示を切り替える

More than 1 year has passed since last update.

これは TOWN Advent Calendar 2018 25日目のエントリーです。

今回はお仕事と関係なく、Laravelのお話。

laravelcollective

2018年においてPHPのフレームワークといえば、Laravel一強な感じもありますがLaravel本体のアップデートも頻繁に行われており、Larvel5からFormはコアモジュールから削除されていて、LaravelCollectiveという別プロジェクトに移管されていたりします。

https://laravelcollective.com/

ちなみにインストールするときには

composer require "laravelcollective/html":"^5.X.0"

のようにLaravelのバージョンに合わせたバージョンをインストールする必要があります。

bladeで表示を切り替える

Request::is()でURLの一致判定が行なえます。ワイルドカードも使用可能です。

https://qiita.com/binthec/items/174fcf0320d002d01096

の 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では

http://localhost/blogs

みたいに最後に「/」がつかないケースがあるので、

@if(Request::is('blogs/*'))

みたいなパターンだとマッチしないことがあります。

town-inc
私たちは、クラウドを主軸としてさまざまな市場にITを浸透させ、永続的に成長するITカンパニーをめざしています。
https://town.biz/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away