Этот вопрос связан с: Laravel (5.3) Eloquent - Relationship issue, пожалуйста, зайдите на этот URL для получения дополнительной информации.Laravel orderBy whereHas
Я закончил с следующим сценарием:
$genres = ['action', 'drama', 'romance'];
$similiarSeries = TheSeries::whereHas('TheGenres', function($q) use($genres) {
$q->whereIn('genre', $genres);
}, '>=', 1);
return $similiarSeries->take(10);
Что это делает: Он проверяет фильмы, который имеет по крайней мере 1 жанр сверху переменные и возвращают 10 фильмов (если есть).
Проблема заключается в том, что их фильмы возвращаются в хаотичном порядке, вместо этого я бы предпочел бы, чтобы они отображались, отдавая приоритет фильмам, которые являются: действием, драмой, романтикой, а затем возвращают эти фильмы только с двумя жанрами (например: драма, романтика или романтика, действие). а затем только 1 жанр.
Возможно ли это в laravel?
UPDATE
Это пример список фильмов и их жанров:
Zootopia: Action, Animation, Drama
Toy Story: Action, Drama, Romance
Kung Fu Panda: Action, Animation, Fantasy
Avatar: Action, Drama, Romance
Titanic: Action, Drama, Romance
Avengers: Fantasy, Drama, Fiction
Batman: Adventure
Так что, если мы ищем фильмы, которые имеют по крайней мере один из [ «действие», «драма», «романтика» ],
Я ожидаю следующее возвратятся
Toy Story (Action, Drama, Romance) (3)
Avatar (Action, Drama, Romance) (3)
Titanic (Action, Drama, Romance) (3)
Zootopia (Action, Drama) (2)
Kung Fu Panda (Action) (1)
Avengers (Drama) (1)
Batman (0)
Попробуйте привести еще один пример, пожалуйста. С именами реальных фильмов и именами жанров. Что у вас есть, и что вам нужно вернуть. –
#ArturSubotkevic только что обновил вопрос. – Coder
С 0 жанрами тоже? Что за? –