Laravel查询 - 有条件地选择条目

时间:2014-06-27 11:18:37

标签: laravel laravel-4

我有一个查询,其中数据库中的条目可能将end日期设置为零。如何进行以下查询 - 我想选择所有这些事件:

a)开始日期早于今天,但结束日期设为零(0000-00-00 00:00:00

b)开始日期结束日期在今天之后

到目前为止,我所有人都选择了今天之后的开始日期:

$eventsList = DB::table('events')
    ->where('start', '>', Carbon::now())
    ->get();

但是这会错过昨天开始但没有设定结束日期的那些。

编辑:我已使用orWhere子句添加到查询中,但orWhere导致其无法返回结果:

$eventsList = DB::table('events')
    ->where('start', '>', Carbon::now())
    ->orWhere(function($query)
  {
      $query->where('start', '<', Carbon::now())
            ->where('end', '=', '0000-00-00 00:00:00');
  })
    ->get();

1 个答案:

答案 0 :(得分:0)

我猜你正在寻找这样的东西:

        DB::table('events')
        ->where(function($query)
        {
            $query->where('start', '>', Carbon::now())
                  ->where('end', '>', Carbon::now())
        }
        ->orWhere(function($query)
        {
            $query->where('start', '<', Carbon::now())
                  ->where('end', '=', '0000-00-00 00:00:00');
        })
        ->get();