Laravel可以使用@foreach 来在视图里面循环输出。循环过程中,在循环体内有一个可用的 $loop
变量。该变量提供了用于访问诸如当前循环的索引、当前是否为第一次或最后一次循环之类的信息:
@foreach ($users as $user)
@if ($loop->first)
<p>这是第一个循环</p>
@endif
@if ($loop->last)
<p>这是最后一个循环</p>
@endif
<p>User ID 为:{{ $user->id }}</p>
@endforeach
循环输出结果类似下面
<p>这是第一个循环</p>
<p>User ID 为:1</p>
<p>User ID 为:2</p>
<p>User ID 为:3</p>
<p>User ID 为:4</p>
<p>这是最后一个循环</p>
<p>User ID 为:5</p>
在实际中要输出某个变量如下:
@foreach($payment as $key =>$value)
<li class="list-group-item">
<div class="radio" onclick="choseMethod(this,'{{ $value->name }}')" >
@if ($loop->first)
<input type="radio" name="optradio" class="input-radio" checked="checked">
@else
<input type="radio" name="optradio" class="input-radio">
@endif
<span class="radio-span">{{ $value->name }}</span>
<img src="{{ URL::asset('uploads/'.$value->logo) }}" alt="{{ $value->name }}" class="radio-img" style="width: 100px;height: 50px">
</div>
@endforeach
在循环里面使用了if else endif 来做条件判断输出。
@if ($loop->first)
<input type="radio" name="optradio" class="input-radio" checked="checked"
@else
<input type="radio" name="optradio" class="input-radio">
@endif
多个循环嵌套输出
在子循环嵌套中,可以借助 parent
属性访问父循环的 $loop
变量:
@foreach ($users as $user)
@foreach ($user->posts as $post)
@if ($loop->parent->first)
第一级嵌套里的第一个循环
@endif
@endforeach
@endforeach
所有属性
$loop
变量还包含其它几种有用的属性:
属性 描述
$loop->index 当前迭代的索引(从 0 开始计数)。
$loop->iteration 当前循环迭代(从 1 开始计算)。
$loop->remaining 循环中剩余迭代的数量。
$loop->count 被迭代的数组元素的总数。
$loop->first 是否为循环的第一次迭代。
$loop->last 是否为循环的最后一次迭代。
$loop->depth 当前迭代的嵌套深度级数。
$loop->parent 嵌套循环中,父循环的循环变量