【Laravel】Bladeの分岐




この記事は最終更新日から2年以上経過しています。

LaravelのBladeテンプレートエンジンでの分岐をまとめました。

@ifディレクティブ

どこでも出てくる条件分岐です。
条件が真の場合に処理が実行されます。

@if ($var == 1)
    {{ '$varが1の場合' }}
@endif

@if ($var == 1)
    {{ '$varが1の場合' }}
@else
    {{ '$varが1以外の場合' }}
@endif

@if ($var == 1)
    {{ '$varが1の場合' }}
@elseif ($var == 2)
    {{ '$varが2の場合' }}
@else
    {{ '$varが上記以外の場合' }}
@endif

@unlessディレクティブ

@ifディレクティブの逆。
条件が偽の場合に処理が実行されます。

@unless ($var == 1)
    {{ 'unless01:$varが1以外の場合' }}
@endunless

@unless ($var == 1)
    {{ 'unless02:$varが1以外の場合' }}
@else
    {{ 'unless02:$varが1の場合' }}
@endunless

@issetディレクティブ

変数が宣言されている、かつNULLでない場合、処理が実行されます。
elseも使えます。

@isset($var)
{{ 'isset01:$var変数が宣言されている、かつNULLでない場合場合' }}
@endisset

@isset($var)
    {{ 'isset02:$var変数が宣言されている、かつNULLでない場合場合' }}
@else
    {{ 'isset02:$var変数が宣言されていない、またはNULLの場合' }}
@endisset

@emptyディレクティブ

変数が宣言されていない、null,”,0のいずれかの場合、真となり処理が実行されます。
elseも使えます。

@empty($var)
    {{ 'empty01:$var変数が宣言されていないか、null,'',0の場合' }}
@endempty
@empty($var)
    {{ 'empty02:$var変数が宣言されていないか、null,'',0の場合' }}
@else
    {{ 'empty02:$var変数が宣言されていて、null,'',0以外の場合' }}
@endempty

@hasSectionディレクティブ

セクション存在チェックをします。
elseは使えません。

@hasSection ('content')
{{-- contentセクションが存在する場合 --}}
@endHasSection

@auth・@guestディレクティブ

認証チェックができるディレクティブです。
詳しくは別記事で認証処理と合わせて説明します。