आप इस प्रकार प्रयास कर सकते हैं:
// returns array of genre_ids associate with the TheMovies.id => 1
$genre_ids = TheGenres::whereHas('TheMovies', function($q) {
$q->where('id', 1);
})->pluck('id')->toArray();
फिर उन $genre_ids
. का उपयोग करें संबंधित फिल्मों को इस रूप में लाने के लिए:
TheMovies::whereHas('TheGenres', function($q) use($genre_ids) {
$q->whereIn('id', $genre_ids);
})->get();
अपडेट करें
मान लें कि आपके पास है:
$genre_ids = [21, 23];
तो आपकी क्वेरी इस प्रकार हो सकती है:
TheMovies::whereHas('TheGenres', function($q) use($genre_ids) {
$q->whereIn('genreID', $genre_ids)
->groupBy('movieID')
->havingRaw('COUNT(DISTINCT genreID) = 2');
})->get();
नोट - मैंने इसका परीक्षण नहीं किया है लेकिन आप इसे आजमा सकते हैं।