[Laravel] Bladeテンプレートエンジン(2)ディレクティブ編
- 2020年4月24日
- 技術情報
PHPフレームワーク「Laravel」を使用するにあたり、Viewの作成は、Bladeテンプレートエンジンを使用することが一般的です。
Bladeテンプレートエンジンを使用することでHTMLへのPHPの埋め込みが簡単におこなえるようになります。
今回は、Bladeテンプレートで使用できるディレクティブの紹介をおこないたいと思います。
ディレクティブとは?
ディレクティブとは、条件分岐処理や、繰り返し処理などの、制御をおこなうための命令構文です。Laravel(Blade)では「@」から記述します。
条件分岐処理(@if)
PHP標準のif文に相当します。
「@if」が開始で、「@endif」で終了を示します。
PHP標準のif文と同様に「@else」や「@elseif」と組み合わせて使用することもできます。
以下に例を示します。
ControllerからView変数を渡します。
'myage' => 53;
Viewでの記述例
@if($myage < 40)
<p>私は40歳未満です</p>
@elseif($myage < 70)
<p>私は40歳以上、70歳未満です</p>
@else
<p>私は70歳以上です</p>
@endif
実行結果:
私は40歳以上、70歳未満です
変数の有無を確認する(@isset)
「@isset」を使用することによって、変数の有無やnullでないかによって処理を振り分けることが可能になります。最初に紹介した「@if」と同様に「@else」と組み合わせて使用することができます。
ControllerからView変数を渡します。
'msg' => 'こんにちは';
Viewでの記述例
@isset($msg)
<p>メッセージは「{{ $msg }}」です</p>
@else
<p>メッセージはありません</p>
@endisset
実行結果
メッセージは「こんにちは」です
※msgに変数がセットされていない場合は「メッセージはありません」と表示されます。
指定回数の処理を繰り返す(@for)
PHP標準のfor文に該当します。
使用例は以下のようになります。
Viewでの記述例
@for($i=1; $i<=6; $i++)
<h{{ $i }}>こんにちは</h{{ $i }}>
@endfor
実行結果:

金曜日担当: nishida
nishida at 2020年04月24日 10:00:13