如果我在foreach中使用@if,如何在foreach循环中找到最后一个项目,我想找到它,所以我想删除最后一个项目之后的点,我希望这些点仅在类似项目之间显示: 你好 。救命 。 我知道使用loop-> last的方式,但是由于@if条件显示不同的last项,所以它不起作用,这意味着如果我们有100项,但是当我们使用if时它会显示项1、42和63,所以最后一项是63,但是当使用loop-> last将显示最后一项是100
在这里,但我所拥有的是这样的:这里。
@foreach($cuisines as $cuisine)
@if(($cuisine->id)==($scuitem->cuisine_id))
{{ $cuisine->title }} •
@endif
@endforeach
答案 0 :(得分:2)
Laravel实际上有the $loop
variable,其中包含有关当前迭代的信息。
例如$loop->last
是一个布尔值,指示我们是否在最后一次迭代中。
@foreach($cuisines as $cuisine)
@if(($cuisine->id)==($scuitem->cuisine_id))
{{ $cuisine->title }}{{ $loop->last ? '' : ' •' }}
@endif
@endforeach
答案 1 :(得分:1)
您可以使用$ loop-> last:
@foreach($cuisines as $cuisine)
@if(($cuisine->id)==($scuitem->cuisine_id))
{{ $cuisine->title }}
@if(!($loop->last))
•
@endif
@endif
@endforeach
已编辑:
现在在Controller中使用此代码并传递$str
进行查看
$arr = [];
foreach($cuisines as $cuisine){
if(($cuisine->id)==($scuitem->cuisine_id)){
$arr[] = $cuisine->title;
}
}
$str = implode(' • ',$arr);
或者如果您要在视图中编码而不是按以下方式使用:
@php
$arr = [];
foreach($cuisines as $cuisine){
if(($cuisine->id)==($scuitem->cuisine_id)){
$arr[] = $cuisine->title;
}
}
$str = implode(' • ',$arr);
@endphp