如何解决Laravel:如何在 Laravel Blade 中使用 Group By?
我正在尝试获取所有插槽,然后按房间对它们进行分组。在我看来,我想要一排房间:
<tr>
<td>Room ID 1</td>
<td>Slot ID 1</td>
<td>Slot ID 2</td>
<td>Slot ID 3</td>
.................
</tr>
<tr>
<td>Room ID 2</td>
<td>Slot ID 1</td>
<td>Slot ID 2</td>
<td>Slot ID 3</td>
.................
</tr>
我相信我很接近,但不确定“Laravel方式”。数据看起来不错 - 因为查询正在正确获取/分组,我认为我的困难在于了解如何遍历集合。
MyController.PHP
public function routineViewDayWise()
{
$sunday_routines = Routine::where('day_id',1)->orderBy('room_id')->get()->groupBy('room_id');
return view('day_wise_routine',compact('sunday_routines'));
}
在我看来,我可以看到我得到了这个:
MyView.blade.PHP
#items: array:4 [▼
2 => Illuminate\Database\Eloquent\Collection {#1323 ▼
#items: array:2 [▼
0 => App\Models\Routine {#1339 ▶}
1 => App\Models\Routine {#1340 ▶}
]
}
4 => Illuminate\Database\Eloquent\Collection {#1322 ▶}
6 => Illuminate\Database\Eloquent\Collection {#1336 ▶}
8 => Illuminate\Database\Eloquent\Collection {#1335 ▶}]
解决方案
这是获得我想要的输出的视图。
MyView.blade.PHP
@foreach($sunday_routines as $room_id => $routines)
<tr>
<td>{{ $room_id }}</td>
@foreach($routines as $routine)
<td>{{ $routine->slot_id }}</td>
@endforeach
</tr>@endforeach
解决方法
嗨,朋友,请将以下内容更新为将 groupBy() 放在 get()
之前public function routineViewDayWise()
{
$sunday_routines = Routine::where('day_id',1)->orderBy('room_id')->groupBy('room_id')->get();
return view('day_wise_routine',compact('sunday_routines'));
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。