我试图在我的laravel页面上显示一组特定的引用,方法是迭代一个foreach循环,并使用@class循环奇数/循环偶数对奇偶迭代进行不同的样式设置。
但是,当我以@if开头时,只有一些元素进入循环,而有些元素被跳过,这会扰乱我的奇数/偶数(例如#1、#2和#4 ),这意味着我有两个循环偶数的样式。
我如何能跳过那些没有进入循环,以便我可以显示的结果与交替样式?
@foreach ($references as $reference )
@if(isset($reference['is_startpage'])
&& $reference['is_startpage'] != 1
&& isset($reference['content']['featured'])
&& $reference['content']['featured'] == 1)
<div @class([
'row py-5' => $loop->odd,
'row flex-row-reverse py-5'=> $loop->even,
])></div>
@endif
@endforeach发布于 2022-04-13 16:51:01
正如您所说,并不是每个循环迭代都打印<div>元素,因此在您的情况下,$loop->even和$loop->odd变量对于实现该特定逻辑是无效的。然而,有很多方法可以实现你想要的。第一种进入我脑海的方法是使用一个特定的计数器来实现这一点,即:
@php $featuredCount = 0; @endphp
@foreach ($references as $reference)
@if(
isset($reference['is_startpage'])
&& $reference['is_startpage'] != 1
&& isset($reference['content']['featured'])
&& $reference['content']['featured'] == 1
)
@php $featuredCount++; @endphp
<div @class([
'row py-5', // These two are always present, no need to conditionally rewrite them
'flex-row-reverse' => $featuredCount % 2 == 0, // 'Even' check
])></div>
@endif
@endforeachhttps://stackoverflow.com/questions/71860737
复制相似问题