Laravel两个日期之间的返回模型

时间:2017-09-20 20:32:28

标签: php database laravel-5 eloquent

我正在尝试加载模型并在两个日期之间返回记录,但如果在两个日期之间找不到任何内容我想要返回下一个最接近的记录,我尝试了以下内容:

$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),但这似乎没有什么区别。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分: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);
    });
}]);