我有两个嵌套的foreach循环,我只希望内部循环检查条件。如果满足或不满足,则终止内循环并返回外循环。在我的情况下,据我所知,我的内循环总是需要运行一次。问题:两个数组。首先拥有所有选择。第二只选择。现在算出ID。如果匹配=>打印已选中,否则=>未选中。我尝试过休息;但内部循环仅检查第一项,然后执行其他部分中的所有迭代。@phpforeach($propertyAmenities as $amenity){ foreach($property->amenities as $new){ if( ($amenity->type == 'amenity') && ($amenity->id == $new->id) ){ @endphp <label class="checkbox-inline control-label"> <input type="checkbox" name="amenity[]" value="{{$amenity->id}}" {{'checked'}}>{{ $amenity->name }} </label> @php break; } elseif(($amenity->type == 'amenity')){ @endphp <label class="checkbox-inline control-label"> <input type="checkbox" name="amenity[]" value="{{$amenity->id}}">{{ $amenity->name }} </label> @php break; } } }@endphp第一次检查并打印“已检查”,下次仅执行ifelse部分。我不知道为什么只检查第一。所有其他都保持未选中状态。
1 回答
![?](http://img1.sycdn.imooc.com/545863b500014e4602200220-100-100.jpg)
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
您可以通过在视图中将选定的选项作为数组传递来简化代码。
// Given $selectedOptions = [1, 2, 3, 4...]
@foreach($property->amenities as $amenity)
<label class="checkbox-inline control-label">
<input type="checkbox"
name="amenity[]"
value="{{$amenity->id}}"
@if (in_array($amenity->id, $selectedOptions))
checked="checked"
@endif
>{{ $amenity->name }}
</label>
@endforeach
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消