在Laravel中构造以下数据库查询的最佳方法是什么?

时间:2015-04-06 17:20:53

标签: php mysql laravel eloquent

我在构建符合以下条件的查询时遇到了麻烦。

开始日期为今天/未来OR 0000/00/00
结束日期是今天/未来OR 0000/00/00
哪里有超过3的观点

这是我到目前为止所拥有的。

$users = DB::table('videos')
    ->where('start' <= date('Y-m-d'));
    ->orwhere('start' = "0000:00:00 0000");
    ->where('end' > date('Y-m-d'));
    ->orwhere('end' = "0000:00:00 0000");
    ->where('views' => "3");
    ->get();

任何建议都会受到赞赏,谢谢你们!

1 个答案:

答案 0 :(得分:2)

您希望advanced where使用参数分组:

$users = DB::table('videos')
    ->where(function($q) {
        $q->where('start', '<=', date('Y-m-d'))
          ->orWhere('start', '=', "0000:00:00 0000");
    })
    ->where(function($q) {
        $q->where('end', '>', date('Y-m-d'))
          ->orWhere('end', '=', "0000:00:00 0000");
    })
    ->where('views', '>', 3)
    ->get();