Laravel 4.2如何在OR条件下使用2 whereBetween?

时间:2015-10-06 07:25:30

标签: sql laravel-4 eloquent

我期待的是,我需要像这样使用2 whereBetween

Model::whereBetween('attr1', [date1, date2])
     ->orWhereBetween('attr2', [date1, date2])

2 个答案:

答案 0 :(得分:1)

我认为你需要使用高级人员http://laravel.com/docs/4.2/queries#advanced-wheres

所以在这种情况下:

Model::whereBetween('attr1', [$date1, $date2])
          ->orWhere(function($query) use ($date1, $date2){
               $query->whereBetween('attr2', [$date1, $date2]);
          })
          ->get();

如果不起作用,请尝试使用此备选方案。

Model::where('attr1', '<', $date1)
       ->where('attr1', '>', $date2)
       ->orWhere(function($query) use ($date1, $date2) {
            $query->where('attr2', '<', $date1)
                  ->where('attr2', '>', $date2);
       })
       ->get();

答案 1 :(得分:1)

这是最好的方法,我们可以简单地做我在问题中提到的那些:)

Model::whereBetween('attr1', [date1, date2])
 ->orWhereBetween('attr2', [date1, date2])