이 질문에 관련되어 있습니다 : 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);
를 그것이 무엇을하는 것입니다 : 그것은 변수 위에서 적어도 한 장르를 가지고 영화를 확인하고 (있는 경우) (10) 영화를 반환합니다.
문제는 영화가 혼란스런 순서로 반환된다는 것입니다. 대신 액션, 드라마, 로맨스 등의 영화를 우선 순위로 표시하고, 2 개의 장르 만 가진 영화를 반환하면 좋을 것입니다. 드라마, 로맨스 또는 로맨스, 액션). 그리고 나서 단 1 개의 장르.
laravel에서도 가능합니까? '로맨스', 우리는 [ '행동', '드라마'중 하나 이상을 가지고 영화를 검색 그렇다면
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
:
UPDATE
이 영화와 그 장르의 예 목록입니다 ],
내가 다음이 반환 될 것으로 기대하고있다 :
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 장르도 있습니까? 뭐야? –