2017-09-27 14 views
1

私は、クエリを構築するためにLaravelにwhereHasを使用します。Laravelここは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

whereHas' 'のようなんLaravelのサポート' LeftJoin'閉鎖? – OPV

+0

結果テーブルに '発行された' = 0の行がないと言うので、正しい行が返されてはいけません。あなたが望む行動は何ですか? – Jeff

答えて

2

whereHasとしてあなたが探している関係を持つモデルを返すだけで動作します。あなただけ返されResultsを制限したい場合は、withを試してみてください。

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

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

}])->get(); 
+0

申し訳ありませんが動作しません、私は常にデータを返すクエリを掘り下げました – OPV