2017-09-27 5 views
1

내가 쿼리를 작성하는 Laravel에 whereHas를 사용Laravel 어디 HAS는 INNER JOIN으로 작동합니까?

})->whereHas('results', function ($query) use ($issued, $mode, $request) { 

      if (($request->get("filter"))) { 
       $query->where('issued', 0); 
      } 

     })->orderBy('created_at', 'desc')->paginate(); 

테이블 results 행이 지금 있기 때문에이 quesry 제로 행을 반환

$query->where('issued', 0); 

수행하는 방법에 LEFT JOIN으로 whereHas 작동하는지? 이제는 INNER JOIN으로 작동

+0

합니까 Laravel 지원'LeftJoin' 폐쇄? – OPV

+0

결과 테이블에 행이'발행 된 '= 0이 아니므로 반환 된 행이 없어야합니다. 당신이 원하는 행동은 무엇입니까? – Jeff

답변

2

whereHas은 찾고 계신 관계가있는 모델 만 반환합니다. 방금 반환되는 Results을 제한하려면, with을 시도 :`whereHas` 같은

$models = Model::with(['results' => function($query){ 

    $query->where('issued', 0); 

}])->get(); 
+0

죄송합니다. 작동하지 않지만 항상 데이터를 반환하는 쿼리를 사용했습니다. – OPV