【问题标题】:Laravel 4.2 How to use 2 whereBetween with in OR condition?Laravel 4.2 如何在 OR 条件下使用 2 whereBetween with?
【发布时间】:2016-01-03 00:34:52
【问题描述】:

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

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

【问题讨论】:

    标签: sql laravel-4 eloquent


    【解决方案1】:

    我认为你需要使用高级 whereshttp://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();
    

    【讨论】:

    • 我只是在尝试同样的方法。
    • 没用?我刚刚更新了我的答案,你可以试试替代方案。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-09-27
      • 2016-12-26
      • 2016-03-15
      • 2019-02-16
      • 2021-12-02
      • 2017-09-09
      • 2016-06-25
      • 1970-01-01
      相关资源
      最近更新 更多