您的位置:首页 > 编程语言 > PHP开发

Laravel 5.3 新特性系列 —— Blade 模板新增 $loop 变量

2017-05-04 17:47 489 查看


什么是Blade指令

Laravel的Blade模板语言提供了指令功能,这些指令其实是一些自定义标签
—— 以
@
开头,通常用于控制结构。如果你用Blade写过模板,就会对形如
@if
@foreach
这些指令非常熟悉。

这些指令通常都是相应PHP代码的等价物,例如
@if(condition)
等价于
<?php
if($condition):


$loop变量

在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>


就是这样简单、方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: