2017-09-20 18 views
0

モデルを熱心に読み込んで2つの日付間でレコードを返そうとしていますが、2つの日付の間に何も見つからない場合は、次のレコードを返します。2つの日付間のLaravelリターンモデル

$query->with(['hives' => function($q) use ($start_date, $end_date) { 
           $q->whereIn('hive_type_id',[3,4]); 
           $q->whereBetween('logged_at',[$start_date, $end_date]); 
           $q->where('active',true)->where('logged_at','<=',$end_date); 
          }]);  

$q->orWhere('active',true)->where('logged_at','<=',$end_date)をチェーンしようとしましたが、これは違いはありません。

助けていただけたら幸いです!

答えて

0

これはあなたの

$query->with(['hives' => function($q) use ($start_date, $end_date) { 
    $q->whereIn('hive_type_id',[3,4]); // you can wrap this in below if belong to first condition 
    $q->where(function ($qr) use ($start_date, $end_date){ 
     $qr->whereBetween('logged_at',[$start_date, $end_date]); 
    }); 
    $q->orWhere(function ($qr) use ($end_date){ 
     $qr->where('active',true)->where('logged_at','<=',$end_date); 
    }); 
}]); 
+0

感謝を助けるかもしれません!これは問題を解決するように見えます。 – Pedro

関連する問題