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

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
17
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@kaneko_tomo

Laravelのyieldで読み込んだコンテンツの存在確認

はじめに

Laravelのbladeテンプレート内で、@yieldを記述することで子テンプレートで定義されたコンテンツを読み込むことができます。
しかし、yieldで指定したコンテンツが存在しない時に、外側のタグのみ表示されてしまいました。

上記の問題を解決するため、外側のタグごと表示しないような制御をしてみます。

かいてみる

問題のあるケース

sample.blade.php
<div class="row">
    <div class="col-md-12">
        @yield("mainvisual")
    </div>
</div>

上記の記述をした場合、mainvisualブロックが定義されていない場合に、HTML上は以下の様なタグが出力されてしまいます

sample
<div class="row">
    <div class="col-md-12">

    </div>
</div>

対応方法

ViewクラスのhasSectionメソッドでチェックできました。

sample.blade.php
@if (View::hasSection('mainvisual'))
<div class="row">
   <div class="col-md-12">
        @yield("mainvisual")
    </div>
</div>
@endif

では、また。

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
17
Help us understand the problem. What are the problem?