我正在用@foreach显示一些内容。但是如果这个数据与另一个@foreach…
中的任何数据匹配,我想以不同的方式显示该内容这是我的代码:
@foreach($todasactividades as $a)
<div class="marco-cabecera">
@foreach($actividades as $activ)
@if($a->id == $activ->id)
<?php $bandera = true; ?>
@elseif($a->id != $activ->id)
<?php $bandera = false; ?>
@if($bandera)
{{ $a->actividad }}
@elseif(!$bandera)
{{ $a->actividad }} Something different!!
@endif
@endif
@endforeach
@endforeach
我已经尝试了一些不同的东西,所以现在我认为我的代码是一团乱…
有谁知道我怎么修理它吗?
提前感谢!
我是这样解决这个问题的……
@foreach($todasactividades as $a)
<?php $bandera = 0 ?>
@foreach($actividades as $activ)
@if($a->id == $activ->id)
<?php $bandera++ ?>
@endif
@endforeach
@if($bandera == 0)
<div class="marco-fondo-blanco">
{{ $a->actividad }}
</div>
@else
<div class="marco-fondo-gris">
{{ $a->actividad }}
</div>
@endif
@endforeach
这会清理你的代码并修复一些逻辑问题。
@foreach($todasactividades as $a)
<div class="marco-cabecera">
@foreach($actividades as $activ)
@if($a->id == $activ->id)
{{ $a->actividad }}
@else
{{ $a->actividad }} Something different!!
@endif
@endforeach
</div>
@endforeach
不要在彼此内部执行这些循环。创建一个查找数组
$activities = array();
@foreach($todasactividades as $a) {
$activities[$a->id] = $a->id;
}
然后创建主循环并检查是否设置了活动
<div class="marco-cabecera">
@foreach($actividades as $activ)
@if(isset($activities[$activ->id]))
{{ $a->actividad }}
@else
{{ $a->actividad }} Something different!!
@endif
@endforeach
</div>
您可以尝试以下方法,不需要使用@if
和<?php
标记或其他变量):
@foreach($todasactividades as $a)
<div class="marco-cabecera">
@foreach($actividades as $activ)
{{ $a->actividad }}
{{ $a->id != $activ->id ? 'Something different!!' : '' }}
@endforeach
</div>
@endforeach