seoperin
@seoperin
Full stack web developer. Laravel / Vue

Сортировка коллекции по двум параметрам?

Есть модель Serial и есть модель Episode. У episode в таблице есть number (номер серии) и season (номер сезона). Мне нужно получить коллекцию (массив?) для перебора с сортировкой по двум этим полям, чтобы сначала шли последние сезоны и последние серии и заканчивалось первым сезоном первой серией:
6 сезон 24 серия
6 сезон 23 серия
....
1 сезон 2 серия
1 сезон 1 серия
У сериала сделал метод:
public function list()
{
    return $this->episodes()->active()->get()->sortByDesc('number')->groupBy('season')->sortByDesc('season');
}

Но сезоны сортируются как-то рандомно, а вот серии в сезонах нормально.
Помогите с запросом, может сортировать не коллекцию а при запросе еще, но тоже ничего толкового не вышло пока
UPD:
забыл сказать, нужно не просто чтоб был такой порядок, нужно еще группировку по сезонам. То есть чтобы циклом выводить все сезоны, внутри каждого сезона еще один цикл с сериаями
  • Вопрос задан
  • 2783 просмотра
Решения вопроса 1
DJZT
@DJZT
Laravel - code for you
Попробуй
return $this->episodes()
->active()
->groupBy('season')
->orderBy('season', 'DESK')
->orderBy('number', 'DESK')
->get();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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