Blade 模板
在Laravel 5.3中,@foreach
指令提供了更加强大的功能,在每一个@foreach
循环体中都可以调用一个新的$loop
变量。该变量是一个stdClass
实例,包含了当前循环的元数据信息,让我们来看一下它提供的属性:
- index:从1开始的循环索引,1意味着是第一个条目。
- remaining:循环还有多少个条目,比如当前是3个中的第一个,那么会返回2;
- count:循环总条目数
- first:是否是第一个
- last:是否是最后一个
- depth:循环的层级
- parent:如果循环位于另一个@foreach中,返回父循环引用,否则返回null
下面是一段示例代码:
<ul> @foreach ($pages as $page) <li>{{ $page->title }} ({{ $loop->index }} / {{ $loop->count }})</li> @endforeach </ul>
如果有嵌套循环,可以使用depth
判断,并且通过$loop
的parent
属性获取相应信息:
<ul> @foreach ($pages as $page) <li>{{ $loop->index }}: {{ $page->title }} @if ($page->hasChildren()) <ul> @foreach ($page->children() as $child) <li>{{ $loop->parent->index }}.{{ $loop->index }}: {{ $child->title }}</li> @endforeach </ul> @endif </li> @endforeach </ul>
就是这样简单、方便。