2016-06-02 4 views
0

나는 학기, 과정 및 과제 강의 프로젝트가 있습니다. Laravel 여러 컬렉션 수를 쿼리

나는 그와 관련된 적어도 하나의 과정이 있었다에만 학기를 얻고 싶었다, 그래서 나는이 한 : 이제

Semester::has('courses', '>', '0')->get(); 

를, 내가 얻을 적어도 하나 개의 과제를 가지고 적어도 하나 개의 과정이 학기 싶어 그것과 관련된.

학기 수업의 경우 나는 Course와 hasMany 관계를 가지고 있으며, Course에서는 Assignments와 hasMany 관계가 있습니다. 나는 또한 과정에 배정과 학기당 과정에 belongsTo을 가지고있다.

나는 클로저를 찾아 보았지만 자습서 중 어떤 것도 컬렉션 컬렉션을 확인하는 것과 관련이없는 것으로 보인다. 이 코드는 어떻게 실행합니까?

Semester::whereHas('courses', function ($query) { 
    $query->has('assignments', '>', '0') 
})->get(); 

huuuk의 대답은 다른 접근하지만 똑같이 유효하고 도움이된다 :

편집

읽기 등을 테스트 한 후,이 코드가 작동하는 것을 발견했다. 모든

답변

0

첫 번째는 당신이 그렇게

Semester::has('assignments', '>=', '1')->get(); 
+0

을 주셔서 감사합니다 같은 목표에 도달 할 수 Semetster 클래스

public function assignments() { return $this->hasManyThrough('App\Course', 'App\Assignment'); } 

hasManyThroughrelation을 정의! – Aaron