Сортировка коллекции по значению отношения один ко многим - PullRequest
0 голосов
/ 11 июня 2018

Я создаю функциональность фильтра (которая уже работает).Теперь я просто хочу добавить к нему функциональность заказа: Упорядочить по «имени исполнителя», «названию произведения», ...

Возможные значения заказа не являются «полями» в этой таблице.Я не могу найти способ запустить этот "orderBy" запрос.Я ищу что-то вроде этого:

$artworks = $artworks->orderBy(function($q) use($request){
    $q->where('title', 'LIKE', '%artist_name%');
});

Но, очевидно, это не работает.Есть ли способ сделать это? Например: я хочу иметь возможность сортировать по произведениям, которые имеют title "имя_художника", упорядоченное по value этих записей

У меня есть две таблицы: Artworks & Artwork_data (отношения один ко многим).

Это моя таблица Artwork_data:

Artwork_data table

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете использовать orderByRaw с условным предложением

->orderByRaw('case when title like %artist_name% then value else somecolumn end asc')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...