我们有一个文章表,有文章。 该文章具有publish_date和expire_date,可以为空。
Article Table
$table->date('publish_period_from')->nullable();
$table->date('publish_period_to')->nullbale();
我们要检索当时发表的文章。 这是我们的查询。
$query->where('publish_period_from', '<=' today())
->where('publish_period_to', '>=' today())
但是在这种情况下,如果文章的日期为“空”,我们将无法检索文章数据。
您知道如何找回它吗?
将列从nullable()转换为required更好?
我们正在使用 laravel5.5
答案 0 :(得分:1)
类似的东西应该可以正常工作:
$query->where(function ($query) {
$query->where('publish_period_from', '<=' today())
->where('publish_period_to', '>=' today())
})->orWhere(function ($query) {
$query->whereNull('publish_period_from')
->whereNull('publish_period_to');
})->get();
这将返回在该时间限制内发布的结果,或者两个值均为null的结果。
答案 1 :(得分:0)
您可以使用此方法->orWhereNull('field')