2017-12-06 21 views
1

나는 영화와 세리에 데이터베이스를 쓰고있다. 장르별로 필터링 할 수있게 만들고 싶습니다.Laravel 필터 관계의 많은 관계로

동영상 부분은 매우 쉽습니다. 내 영화 모델에서는 장르 범위를 추가 할 수 있습니다.

public function scopeGenres($query, $genres) 
{ 
    return $query->whereHas('genres', function($q) use ($genres){ 
     $q->whereIn('genres.genre_id', $genres); 
    }); 
} 

이제 시리즈 모델에 추가하고 싶습니다. 문제 : 시리즈가 아닌 계절을 표시하고 장르가 시리즈에 첨부됩니다.

Season belongsTo Serie morphToMany Genre 

내가 이미이 좋아 만들려고 :

$seasons->with('serie' => function($query) use ($genre_ids){ 
    $query->whereHas('genres', function($q) use ($genre_ids){ 
     $q->whereIn('genres.genre_id', $genres); 
    }); 
}); 

을하지만 성공

이 같은입니다.

장르별로 시즌을 필터링하는 방법은 무엇입니까?

+0

with 기능을 교체해야? 결과가 없습니까? 오류? – Devon

답변

1

당신은 어떤 성공을 정확히 의미없는 무엇이 다른 whereHas

$seasons->whereHas('serie', function($query) use ($genre_ids) { 
    $query->whereHas('genres', function($q) use ($genre_ids){ 
     $q->whereIn('genres.genre_id', $genres); 
    }); 
}); 
+0

너무 쉽게 ... 완전하게 작동합니다! 나는 그 아이디어를 생각해 내지 못했을 것이다. 감사! – Ronon