как получить данные за период? - PullRequest
0 голосов
/ 15 октября 2018

У нас есть таблица статей, есть статьи.В статье есть publish_date и expire_date, которые могут иметь значение null.

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 () в требуемые? ??

мы используем laravel5.5

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Что-то вроде этого должно работать нормально:

$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();

Это вернет результаты, если они опубликованы в пределах этого временного ограничения или оба значения равны нулю.

0 голосов
/ 15 октября 2018

Вы можете использовать этот метод ->orWhereNull('field')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...