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



ディスカッション
コメント一覧
まだ、コメントがありません