(注:本文翻译自这篇博文)
$loop 变量简介
在 laravel 5.3 中 blade 模板引擎里 @foreach 将会变得更为强大。一个新的变量 $loop 将会在每个 @foreach 循环方法中可用。
$loop 变量是 stdClass 的一个实例。它提供了一些关于包裹它的 @foreach 循环的信息。下面一起来看一下 $loop 变量的属性。
- index : 从 0 开始的循环索引。
- iteration : 从 1 开始的循环索引。
- remaining : 循环剩余次数,如果这个循环里共 3 条数据,现在循环了 1 条,那么他将返回 2 。
- count : 循环的总数。
- first : boolean 类型,如果是循环里的第一条数据则返回true。
- last : boolean 类型,如果是循环的最后一条数据则返回false。
- depth : integer类型,表示循环深度。值为 1 时表示只有一层循环,为 2 时表示有两层循环,以此类推。
- parent : 如果循环在另一个 @foreach 循环里,就会返回父循环里 $loop 变量的引用。否则,返回null。
有一些博文或文档提到 index 是从 1 开始的,我也注意到了这一点。但原文写的是从 0 开始 ,而且我在 Laravel 5.3.21 版测试了一下,index 确实是从 0 开始的。
测试代码如下:
$data = ['data' => collect([1, 2, 3])]; return view('test', $data);
blade:
<ul> @foreach($data as $item) <li>{{ $loop->index }} - {{ $loop->iteration }}</li> @endforeach </ul>
结果:
文章评论