【发布时间】:2017-06-20 10:22:43
【问题描述】:
这是我的桌子:
t_hasil_temp
|---|-------|----------|-------|
|id | id_wi | hasil | nilai |
|---|-------|----------|-------|
|1 | 3 | 45 | 0,53 |
|2 | 3 | 20,45,23 | 0,53 |
|3 | 4 | 21,22 | 0,87 |
|4 | 5 | 45,23 | 0,23 |
t_objek
|---|-------|----|
|id | name | ...|
|---|-------|----|
|20 | name1 | ...|
|21 | name2 | ...|
|23 | name3 | ...|
|45 | name4 | ...|
t_hasil_temp.hasil => t_objek.id
我想用相同的id_wi从t_hasil_temp.hasil循环t_objek
示例id_wi => 3
将在刀片视图中显示:
nilai => 0,53
第一个 foreach:
name4
第二次foreach:
name1 和 name4 和 name3
我正在尝试这样。但我从t_hasil_temp.hasil 得到了第一个id
我的控制器
$temps = DB::table('t_hasil_temp')
->where('id_wi', $idwisa)
->get();
foreach ($temps as $value) {
$stemp = DB::table('t_hasil_temp')
->where('id', $value->id)
->first();
$temp = explode(",",$stemp->hasil);
$tempStr = implode(',', $temp);
$robjeks = DB::table('objek')->whereIn('id', $temp)->orderByRaw(DB::raw("field(id, $tempStr)"))->get();
}
我的看法
@foreach($temps as $tem)
<ul id="list">
@foreach($robjeks as $robjek)
@if(in_array($robjek->id,explode(',', $tem->hasil)))
<li class="list_item {{$robjek->kategori}}">
.....
</li>
@endif
@endforeach
</ul>
@endforeach
我认为我的代码有问题,但我不知道。我很无奈。 请帮帮我!
感谢关注。
【问题讨论】:
-
你正在覆盖
$temp = explode(",", $temp->hasil);(这里你也有一个拼写错误)。但是现在$temp有一个用逗号爆炸的数组。不是您试图通过$tem->id在模板中获取的数据库记录。所以改变变量名。 -
抱歉,不知道该换哪一个?
-
你能在刀片模板的循环第一行添加 dd($tem)
-
我收到了
{#318 ▼ +"id": 484 +"id_wi": "484" +"hasil": "26,34" +"nilai": "0.45416566848485" } -
好的。现在在第二个 foreach 中还检查
$robjek它是否也是一个对象,您可以访问 ID ...因为如果 id 不匹配,那么它将不会打印任何内容。
标签: php laravel foreach laravel-5.2