@GaserV

Как выполнить группировку и сортировку сгруппированных объектов?

Такая задача. Нужно сгруппировать товары таким образом, чтобы сначала выводились те, у которых status = 3 || 4, а после уже все остальные. Причем сначала выводятся товары у которых status = 4, затем у которых status = 3, а затем уже все остальные не зависимо от этого поля. Т.е. по идее нужно 3 группы сделать: 1) Со статусом 4. 2) Со статусом 3. 3) все остальные отсортированные по created_at и не зависимо от поля status. Как такое реализовать? Прикрепляю код ниже, но здесь просто группировка и в ASC порядке.

$orders = Order::all()->groupBy('status');
      $orders->toArray();
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 1
@GaserV Автор вопроса
Сделал костыльно, работает) Но может кто-то вариант лучше?
$orders = [];

      $usOrders  = Project::where('status', '>', '2')->orderBy('status', 'desc')->get();
      array_push($orders , $usOrders);

      $allOrders = Project::where('status', '<', '3')->orderBy('created_at', 'desc')->get();
      array_push($orders , $allOrderss);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы