Laravel - Упорядочить красноречивый запрос с помощью отношения отношение отношение к (отношение отношения модели) - PullRequest
0 голосов
/ 07 мая 2019

У меня есть этот запрос:

$challenges = $platform->challenges()->with(['reward', 'brand'])->skip($input['start'])->take($input['length'])->get();

Я пытаюсь получить все вызовы платформы, упорядоченные по бренду.Это отношения:

  • Платформа имеет много вызовов
  • Задача принадлежит бренду

Я пытаюсь с этим кодом:

$challenges = $platform->challenges()->with(['reward'])->skip($input['start'])->take($input['length']);
// ... some more code here
$challenges = $challenges->with(
    [
        "brand" => function ($query) use ($orderDirection) {
            return $query->orderBy("name", $orderDirection);
        }
    ]
)->get();

Все работает.Если я попытаюсь сделать orderBy('brand.name'), это вызовет исключение.

Как получить вызовы платформы, упорядоченные по названию бренда?

РЕДАКТИРОВАТЬ

Iтакже попытался использовать $challenges = $platform->challenges()->with(['reward'])->skip($input['start'])->take($input['length'])->get()->sortBy("brand.name");, но он сортирует только текущую страницу, так что это не решение.

...