Laravel 5条款WHERE AND AND AND?

时间:2018-02-07 21:42:10

标签: php laravel eloquent

我怎么说:

WHERE (login = 'login_1' and date_creation BETWEEN 'date1' AND 'date2') 
    OR (login = 'login_1' and date_creation = 'null') 
    OR (date_creation BETWEEN 'date1' AND 'date2' and login = 'null')

我想在laravel中使用它。

我尝试使用此代码:

->where('login',"=",'login_1')  
->orWhereBetween('date_creation', array('date1', 'date2'))

1 个答案:

答案 0 :(得分:1)

我认为最好的选择是这样做:

->where(function($query) {
    $query->where('login', 'login_1')
    $query->whereBetween('date_creation', 'date1', 'date2')
})
->orWhere(function($query) {
    $query->where('login', 'login_1')
    $query->whereNull('date_creation')
})
->orWhere(function($query) {
    $query->whereNull('login')
    $query->whereBetween('date_creation', 'date1', 'date2')
});