Blade 提供 @foreach、@while、@for 和 @forelse 等指令来与 PHP 循环配合使用。
您知道吗... 这些指令中有一个方便的 $loop 变量,它指示当前循环迭代?在本文中,我们将探索 $loop 和 loop 指令。😎
使用$loop比@foreach更深入
该@foreach
指令遍历数组和对象,循环数据并为每个项目呈现 HTML。非常简单:
@foreach($users as $user)
<p>{{ $user->name }}</p>
@endforeach
但是,在@foreach
循环内,您可以访问变量$loop
,并提供如下信息:
$loop->index
:当前迭代索引(从 0 开始)。$loop->iteration
:当前迭代次数(从 1 开始)。$loop->first
:判断这是否是第一次迭代。$loop->last
:判断这是否是最后一次迭代。$loop->count
:循环中的项目总数。$loop->remaining
:循环中剩余的迭代次数。$loop->even
:这是否是循环中的偶次迭代。$loop->odd
:这是否是循环中的奇数迭代。$loop->depth
:当前循环的嵌套层数。$loop->parent
:在嵌套循环中,父级的循环变量。
非常有用,对吧?你可以这样使用它:
@foreach($users as $user)
<p>{{ $user->name }}</p>
@if ($loop->last)
<p>This is the last user.</p>
@endif
@endforeach
@forelse
该@forelse
指令类似于,@foreach
但包含处理空数组或集合的条件。
@forelse($tasks as $task)
<p>{{ $task->name }}</p>
@empty
<p>No tasks found.</p>
@endforelse
除了前面提到的循环属性之外,$loop
还提供了特定于的属性@forelse
:
$loop->empty
:布尔值,指示循环是否为空。
@for 和 @while
- 该
@for
指令执行一段代码,执行指定次数的迭代。 @while
只要条件为真,指令就会执行代码块。
@for ($i = 0; $i < 5; $i++)
<p>{{ $i }}</p>
@endfor
@while (true)
<p>I'm looping forever.</p>
@endwhile