laravel Eloquent - Where Date >= date(now) and whereNull('date')
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/42037746/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 15:15:55 来源:igfitidea点击:
Eloquent - Where Date >= date(now) and whereNull('date')
提问by Crni
I get all items from a table where:
我从表中获取所有项目,其中:
endDate
is >= nowendDate
isNULL
published
equals1
.
endDate
是 >= 现在endDate
是NULL
published
等于1
.
This is what I have, but it gives me 0 items:
这就是我所拥有的,但它给了我 0 个项目:
$items = Items::orderBy(\DB::raw('RAND()'))
->where('endDate', '>=', date("Y-m-d"))
->whereNull('endDate')
->where('published', '1')
->whereIn('cid', $this->activeId)
->orderBy('id')
->paginate(4);
回答by Alexey Mezenin
You need to use a closure and the orWhereNull()
:
您需要使用闭包和orWhereNull()
:
->where(function($q) {
$q->where('endDate', '>=', date("Y-m-d"))
->orWhereNull('endDate');
})
回答by Dilpesh
You can do with two closure where
and orWhere
:
您可以使用两个闭包where
和orWhere
:
->where(function($query) {
$query->where('endDate', '>=', date("Y-m-d"))
->orWhere('endDate',NULL);
})
回答by Subhash Chavda
You are using both condition , which never give result
您正在使用这两个条件,但永远不会给出结果
->where('endDate', '>=', date("Y-m-d"))
->whereNull('endDate')
Try to use orWhere
尝试使用 orWhere