【Laravel】ディレクティブ一覧
LaravelのBladeには「ディレクティブ」という機能があります。
これは言語における構文のような役割を果たします。
基本的に「@ディレクティブ名」という形で記述して
「@endディレクティブ名」で終了します。
@ifディレクティブ(条件分岐1)
条件分岐(if文)に相当するディレクティブです。
「@if」はその後に条件を設定します。
それ以降、〜@endifまでの部分を表示します。
■条件がtrueの時に表示する
@if (条件) ・・・・出力内容・・・・ @endif
■条件によって異なる表示をする
@if (条件) ・・・・出力内容・・・・ @else (条件) ・・・・出力内容・・・・ @endif
■複数の条件を設定する
@if (条件) ・・・・出力内容・・・・ @elseif (条件) ・・・・出力内容・・・・ @else (条件) ・・・・出力内容・・・・ @endif
「@if」には「@elseif」と「@else」という
ディレクティブがオプションで用意されています。
「@elseif」はいくつでも続けて表記できます。
@unlessディレクティブ(条件分岐2)
条件が非成立の時に表示するディレクティブです。
ということは、「@if」の逆の働きをします。
「@unless」は条件がfalseの場合に表示を行い、
trueの場合は表示をしません。
@unless (条件) ・・・・出力内容・・・・ @else ・・・・出力内容・・・・ @endunless
@emptyディレクティブ(条件分岐3)
変数が空の場合に表示するディレクティブです。
「@empty」は()に指定した変数が空の時に表示を行います。
「@else」は、変数が空でない場合(変数が設定されてる)
場合に表示されます。
@empty (変数) ・・・・出力内容・・・・ @else ・・・・出力内容・・・・ @endempty
@issetディレクティブ(条件分岐4)
変数が定義済みの場合に表示するディレクティブです。
「@isset」は()の変数が定義されてるか確認を行います。
変数が定義されていてnullでない場合に表示を行います。
「@else」は変数が未定義であった場合に表示されます。
@isset (変数) ・・・・出力内容・・・・ @else ・・・・出力内容・・・・ @endisset
@for ディレクティブ(繰り返し1)
PHPの「for構文」に相当するディレクティブです。
「for構文」と同様に、
()内に初期化処理、繰り返し条件、繰り返しの後の
3つの処理を用意します。
@for (初期化 ; 条件 ; 後処理) ・・・・繰り返す表示・・・・ @endfor
@foreach ディレクティブ(繰り返し2)
PHPの「foreach構文」に相当するディレクティブです。
()内に配列、変数を用意します。
配列から変数へ値を取り出す処理を繰り返していきます。
@foreach ($配列 as $変数) ・・・・繰り返す表示・・・・ @endforeach
@forelse ディレクティブ(繰り返し3)
PHPの「foreach構文」に「else」を追加した場合の処理に
相当するディレクティブです。
()の配列から値を全て取り出し終えて取り出せなくなった時に
「@empty」にある処理を実行し繰り返しを終えます。
@forelse ($配列 as $変数) ・・・・繰り返す表示・・・・ @empty ・・・・$変数が空の時に表示・・・・ @endforelse
@while ディレクティブ(繰り返し4)
PHPの「while構文」に相当するディレクティブです。
引数に条件を設定して、trueの場合に表示します。
@while (条件) ・・・・繰り返す処理・・・・ @endwhile
ただし、実行に使っている変数などの値が変化しなければ
無限ループとなってしまうため
ディレクティブ内で何らかの処理を設定する必要があります。
@breakと@continue
@breakは出力されると繰り返しの処理が中断されます。
@continueは繰り返し処理をスキップすることができます。
@phpディレクティブ
Blade内でphpのスクリプトを直接実行できるディレクティブです。
@php(条件)
・・・・phpのスクリプト・・・・
@endphp