控制结构

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