php - 一个 foreach 中的两个变量
问题描述
我需要一个 foreach 中的两个变量。现在我有这样的:
@php $championships = \App\Models\Championship::all(); @endphp
<div class="tour-list">
@foreach($tours as $tour)
<div class="tour-list-box row">
<input type="text" value="{{$tour->name}}" class="col-md-3 input-styles">
<input type="date" value="{{$tour->start_date}}" class="col-md-3 input-styles">
<select name="" id="" class="col-md-3 input-styles">
@foreach($championships as $championship)
@if($championship->deleted)
<option value="">select championship</option>
@else
<option value="">{{$championship->name}}</option>
@endif
@endforeach
@if($tour->championship->deleted)
@else
<option selected value="">{{$tour->championship->name}}</option>
@endif
</select>
<!-- all championships -->
<span tour_id="{{$tour->id}}" class="btn btn-sm btn-primary pull-left col-md-1 tour-remove-button"><span class="glyphicon glyphicon-remove"></span></span>
<span championship_id="{{$championship->id}}" class="btn btn-sm btn-primary pull-right col-md-1 tour-edit-input"><span class="glyphicon glyphicon-edit"></span> </span>
</div>
@endforeach
</div>
但它重复了 2 次,所以我需要在一个 foreach 中使用这 2 个变量 $tours 和 $championships。我试过这个:
@foreach(array_combine($championships, $tours) as $championship => $tour)
@endforeach
但我收到错误“array_combine(): Argument #1 ($keys) must be of type array,”有 2 个变量是否可行?
感谢您的回答<3
解决方案
首先,不建议直接在刀片文件中使用模型,而是将所有这些逻辑放在控制器中,并将一个变量传递给视图。
其次,所有 eloquent 都是对象(集合),所以你不能把它们当作数组来处理,把它们当作你需要的数组$championships = \App\Models\Championship::all()->toArray()
第三,array_combine
- 通过使用一个数组作为键,另一个作为它的值来创建一个数组,您需要使用它$array = array_unique(array_merge($array1, $array2));
来将 2 个数组合并为一个仅包含唯一值的数组
推荐阅读
- r - 获取R包中包含的函数列表,无需下载包
- python - 如何让数据从 Python“提交”到 SQL Server?
- sqlite - 从 SQLite 中的所有行中减去平均值
- python - keras:在源内部计算权重以输入乘法
- mongodb - 执行 $set 文档时 Date.now 不保存
- javascript - 使用 jQuery 在 div 之间注入自定义代码
- android - 改造中不调用成功和失败方法
- javascript - 如何检查在 iPhone Safari 上运行的 Ajax 请求的状态?
- python-3.x - 如何从 url 的列表(或字符串)中获取标题?
- powerbi - 修复 PowerBI 中的日期格式