Laravel Bladeで基本の制御文(分岐、繰り返し)if, switch, unless, for, while, foreach, forelse
こんにちは。今回はLaravelに標準搭載されているテンプレートエンジンのBladeの制御文をまとめて解説します。基礎をおさらいしたい方向けの情報となっています。
目次
分岐条件
if
@ifディレクティブを使うと条件分岐ができます。
@if($hasError)
エラーが存在します。
@endif
switch
switchを使用すると変数の値に対し複数の分岐を記述できます。
@switch($status)
@case(1)
作成中
@break
@case(2)
完成
@break
@default
デフォルトケース
@endswitch
unless
条件がfalseの場合にディレクティブ内を処理するunlessも存在します。
@unless ($isSignedIn)
サインインしていません。
@endunless
繰り返し(ループ処理)
for
指定の回数処理を繰り返す場合はfor文を使います。
@for ($counter = 0; $counter < 10; $counter++)
現在の値は {{ $counter }} </br>
@endfor
while
指定した条件がtrueの間はループし続けます。
@php
$counter = 0;
@endphp
@while ($counter < 10)
<p>現在の値は {{ $counter }}</p>
@php
$counter++;
@endphp
@endwhile
foreach
配列やコレクションの要素分ループします。ループ処理のなかでは最もよく使うと思います。
@php
$fruit = ['apple', 'orange', 'grape'];
@endphp
@foreach ($fruit as $item)
<p>{{ $item }}</p>
@endforeach
forelse
foreachと同じく配列やコレクションの要素をループします。foreachに加え、配列やコレクションに要素が存在しない場合の処理を@emptyディレクティブに記述することができます。
@php
$fruit = []; // 空の配列を渡す
@endphp
@forelse ($fruit as $item)
<p>{{ $item }}</p>
@empty
データが1件もありません。
@endforelse
まとめ
今回はLaravelのBladeで使うことができる基本の制御構文を解説しました。最後のforelse文なんかはかなり見慣れない構文ですが、使いどころは結構あると思います。状況に応じて最適な制御文を記述したいものです。
ディスカッション
コメント一覧
まだ、コメントがありません