laravel 4.1 hasWhere를 사용하여 관계를 필터링하는 데 문제가 있습니다.Laravel 4.1 Eloquent - 관계 컬렉션 필터링
반복 한 - 모든 글 가져 오기 : 완료
$posts = Post::all();
반복이 - 게으른 부하의 의견 모든 게시물 가져 오기 : 완료
$posts = Post::with('comments')->get();
반복 3 - 의견과 게으른 부하 만 게시물을 가져 오기 : 완료
$posts = Post::with('comments')->has('comments')->get();
반복 4 - 게시 된 댓글과 지연로드가있는 게시물 만 가져 오기 : 브로큰
$posts = Post::with('comments')
->whereHas('comments', function($q) {
return $q->where('published', '=', 1);
})
->get();
출력의 은 반복 3과 4의 출력이 완전히 동일 함을 보여줍니다. 'comments.published' = 1
조건에 따라 관계를 필터링 할 수 없습니다.
나는 문제는 당신이에'return'를 호출하고 있음을 믿습니다 쿼리의 메서드는 간단히'$ q-> where ('published', '=', 1); (no return 문)을 호출하면 좋다. – Soulriser