2016-08-19 5 views
1

블로그, 이미지의 두 테이블 사이에 관계가 있습니다. images가 null가 아닌필드가 null이 아닌 행을 선택하는 방법은 무엇입니까?

블로그 모델

public function images(){ 
    return $this->hasMany('App\ImageBlog', 'id_blog', 'id'); 
} 

컨트롤러 그래서

$lastPosts = Blog::orderBy('id', 'desc')->with('images')->take(3)->get(); 

, 어떻게 얻을 수있는 마지막 세 행?

$lastPosts = Blog::orderBy('id', 'desc')->has('images')->take(3)->get(); 

답변

2

, 당신은 has() 방법을 사용하려면) 전체 데이터를 가져 오는 대신 이미지 테이블에서 필요한 열 이름 만 전달하면 응답 시간이 줄어들 수 있습니다.

+1

$ lastPosts = 블로그 :: orderBy ('id', 'desc') -> ('images') -> ('images') -> take (3) -> get(); –

1

이미지 포스트를 얻기의 또 다른 최적화 방법은 여기

$lastPosts=Blog::orderBy('id','desc') 
     ->with(array('images'=>function($query){ 
         $query->select('id','image'....); 
       }))->take(3)->get(); 

에서 $ 질의 -> (선택 다음과 같다 : 내가 제대로 이해하면

관련 문제