在刀片模板中,我使用last()方法查找foreach循环的最后一次迭代:
@foreach ($colors as $k => $v)
<option value={!! $v->id !!} {{ $colors->last()->id==$v->id ? 'selected':'' }} > {!! $v->name !!} </option>
@endforeach
可以吗?也许有一种Laravel式的方法可以做同样的事情吗?
答案 0 :(得分:54)
对于Laravel 5.3+,您可以使用$loop变量
$loop->last
@foreach ($colors as $k => $v)
@if($loop->last)
// at last loop, code here
@endif
@endforeach
答案 1 :(得分:4)
如果您想获取集合中最后一项的实例,那么您所做的事情绝对没问题。
此外,在Laravel 5.3中,您可以使用$loop
变量,它允许您获取最后一次迭代的布尔值$loop->last
或获取当前迭代索引$loop->iteration
,记录总数{{ 1}}以及更多The Loop Variable
$loop->count
答案 2 :(得分:3)
如果$colors
是Collection
,$colors->last()
和end($colors)
都有效
答案 3 :(得分:1)
不知道最后一种方法是否有效,但如果没有,请尝试:
@foreach ($colors as $v)
<option value={!! $v->id !!} @if($v == end($colors)) 'selected' @endif > {!! $v->name !!} </option>
@endforeach
答案 4 :(得分:1)
@foreach ($colors as $v)
<option value={!! $v->id !!} {!!($v == end($colors)) ? 'selected="selected"' : '' !!} > {!! $v->name !!} </option>
@endforeach
或
@foreach ($colors as $v)
<option value={!! $v->id !!} {{($v == end($colors)) ? 'selected="selected"' : '' }} > {!! $v->name !!} </option>
@endforeach