控制結構
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