控制結構

Blade 為常見的 PHP 控制元件結構提供了方便的語法。

每個控制結構以 @[structure] 開始,以 @[endstructure] 結束。請注意,在標記內,我們只是鍵入普通 HTML 幷包含使用 Blade 語法的變數。

條件語句

‘如果’陳述

@if ($i > 10)
    <p>{{ $i }} is large.</p>
@elseif ($i == 10)
    <p>{{ $i }} is ten.</p>
@else
    <p>{{ $i }} is small.</p>
@endif

‘除非’陳述

(‘if not’的短語法。)

@unless ($user->hasName())
    <p>A user has no name.</p>
@endunless

迴圈

‘while’迴圈

@while (true)
    <p>I'm looping forever.</p>
@endwhile

‘Foreach’迴圈

@foreach ($users as $id => $name)
    <p>User {{ $name }} has ID {{ $id }}.</p>
@endforeach

‘Forelse’迴圈

(與’foreach’迴圈相同,但新增了一個特殊的 @empty 指令,它在迭代的陣列表示式為空時執行,作為顯示預設內容的一種方式。)

@forelse($posts as $post)
    <p>{{ $post }} is the post content.</p>
@empty
    <p>There are no posts.</p>
@endforelse

在迴圈中,將提供一個特殊的 $loop 變數,其中包含有關迴圈狀態的資訊:

屬性 描述
$loop->index 當前迴圈迭代的索引(從 0 開始)。
$loop->iteration 當前迴圈迭代(從 1 開始)。
$loop->remaining 剩下的迴圈迭代。
$loop->count 迭代陣列中的專案總數。
$loop->first 這是否是迴圈的第一次迭代。
$loop->last 這是否是迴圈的最後一次迭代。
$loop->depth 當前迴圈的巢狀級別。
$loop->parent 在巢狀迴圈中,父迴圈變數。

例:

@foreach ($users as $user)
  @foreach ($user->posts as $post)
        @if ($loop->parent->first)
            This is first iteration of the parent loop.
        @endif
    @endforeach
@endforeach

從 Laravel 5.2.22 開始,我們也可以使用指令 @continue@break

屬性 描述
@continue 停止當前迭代並開始下一個迭代。
@break 停止當前迴圈。

示例:

@foreach ($users as $user)
    @continue ($user->id == 2)
        <p>{{ $user->id }} {{ $user->name }}</p>
    @break ($user->id == 4)
@endforeach

然後( 假設 5 個使用者按 ID 排序,沒有 ID 丟失 ),頁面將呈現

1 Dave
3 John
4 William