如何在 laravel 刀片视图中打破 foreach 循环?
Posted
技术标签:
【中文标题】如何在 laravel 刀片视图中打破 foreach 循环?【英文标题】:How to break a foreach loop in laravel blade view? 【发布时间】:2017-12-24 15:56:20 【问题描述】:我有一个这样的循环:
@foreach($data as $d)
@if(condition==true)
$d
// Here I want to break the loop in above condition true.
@endif
@endforeach
如果满足条件,我想在数据显示后中断循环。
在 laravel 刀片视图中如何实现?
【问题讨论】:
在@endif
之前使用@break
【参考方案1】:
来自Blade docs:
使用循环时,您还可以结束循环或跳过当前 迭代:
@foreach ($users as $user)
@if ($user->type == 1)
@continue
@endif
<li> $user->name </li>
@if ($user->number == 5)
@break
@endif
@endforeach
【讨论】:
@break 的工作方式类似于循环中其他中断的用法?【参考方案2】:你可以这样打破
@foreach($data as $d)
@if($d === "something")
$d
@if(condition)
@break
@endif
@endif
@endforeach
【讨论】:
【参考方案3】:基本用法
默认情况下,blade 没有@break
和@continue
,这对拥有它们很有用。所以包括在内。
此外,$loop
变量被引入循环内部,(几乎)与 Twig 完全一样。
基本示例
@foreach($stuff as $key => $val)
$loop->index; // int, zero based
$loop->index1; // int, starts at 1
$loop->revindex; // int
$loop->revindex1; // int
$loop->first; // bool
$loop->last; // bool
$loop->even; // bool
$loop->odd; // bool
$loop->length; // int
@foreach($other as $name => $age)
$loop->parent->odd;
@foreach($friends as $foo => $bar)
$loop->parent->index;
$loop->parent->parentLoop->index;
@endforeach
@endforeach
@break
@continue
@endforeach
【讨论】:
【参考方案4】:@foreach($data as $d)
@if(condition==true)
$d
@break // Put this here
@endif
@endforeach
【讨论】:
【参考方案5】:Blade @break 和 @continue 指令有什么区别??
官方文档说:使用循环时,您还可以使用 @continue 和 @break 指令结束循环或跳过当前迭代:
@foreach ($users as $user)
@if ($user->type == 1)
@continue
@endif
<li> $user->name </li>
@if ($user->number == 5)
@break
@endif
@endforeach
【讨论】:
以上是关于如何在 laravel 刀片视图中打破 foreach 循环?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel:如何在视图刀片中的一行中显示来自 DB 的多行