在 laravel blade 中查找 foreach 循环的最后一次迭代
Find last iteration of foreach loop in laravel blade
在 blade 模板中,我使用 last() 方法查找 foreach 循环的最后一次迭代:
@foreach ($colors as $k => $v)
<option value={!! $v->id !!} {{ $colors->last()->id==$v->id ? 'selected':'' }} > {!! $v->name !!} </option>
@endforeach
可以吗?也许有一种 Laravel-style 方法可以做到这一点?
不知道最后一个方法是否有效,如果无效,试试这个:
@foreach ($colors as $v)
<option value={!! $v->id !!} @if($v == end($colors)) 'selected' @endif > {!! $v->name !!} </option>
@endforeach
如果 $colors
是 Collection
,$colors->last()
和 end($colors)
都有效
@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
如果您想获取集合中最后一项的实例,您所做的绝对没问题。
此外,在 Laravel 5.3 中,您可以使用 $loop
变量,它允许您获取上次迭代 $loop->last
的布尔值或获取当前迭代索引 $loop->iteration
,总计记录数 $loop->count
和更多 The Loop Variable
@foreach ($posts as $post)
{{ $post->title }} ({{ $loop->iteration }} of {{ $loop->count }})
@endforeach
至于Laravel 5.3+,可以使用$loop变量
$loop->last
@foreach ($colors as $k => $v)
@if($loop->last)
// at last loop, code here
@endif
@endforeach
在 blade 模板中,我使用 last() 方法查找 foreach 循环的最后一次迭代:
@foreach ($colors as $k => $v)
<option value={!! $v->id !!} {{ $colors->last()->id==$v->id ? 'selected':'' }} > {!! $v->name !!} </option>
@endforeach
可以吗?也许有一种 Laravel-style 方法可以做到这一点?
不知道最后一个方法是否有效,如果无效,试试这个:
@foreach ($colors as $v)
<option value={!! $v->id !!} @if($v == end($colors)) 'selected' @endif > {!! $v->name !!} </option>
@endforeach
如果 $colors
是 Collection
,$colors->last()
和 end($colors)
都有效
@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
如果您想获取集合中最后一项的实例,您所做的绝对没问题。
此外,在 Laravel 5.3 中,您可以使用 $loop
变量,它允许您获取上次迭代 $loop->last
的布尔值或获取当前迭代索引 $loop->iteration
,总计记录数 $loop->count
和更多 The Loop Variable
@foreach ($posts as $post)
{{ $post->title }} ({{ $loop->iteration }} of {{ $loop->count }})
@endforeach
至于Laravel 5.3+,可以使用$loop变量
$loop->last
@foreach ($colors as $k => $v)
@if($loop->last)
// at last loop, code here
@endif
@endforeach