控制结构
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