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/*'))

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

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした