【问题标题】:Laravel: How can I use Group By in laravel blade?Laravel:如何在 laravel Blade 中使用 Group By?
【发布时间】:2021-04-07 23:32:43
【问题描述】:

我正在尝试获取所有插槽,然后按房间对它们进行分组。在我看来,我想拥有一排房间:

<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

【问题讨论】:

    标签: laravel laravel-blade laravel-8


    【解决方案1】:

    您好朋友,请更新以下内容,将 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'));
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-03
      • 2022-01-25
      • 2019-03-31
      • 1970-01-01
      • 2023-04-05
      • 2020-08-18
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      相关资源
      最近更新 更多