期间内如何获取数据?

时间:2018-10-15 15:15:13

标签: php laravel

我们有一个文章表,有文章。 该文章具有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

2 个答案:

答案 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')