Как сделать условный запрос в Laravel - PullRequest
2 голосов
/ 19 февраля 2020

Ситуация следующая. В таблице есть 2 поля даты, а последняя дата имеет значение null 02-10 в качестве параметра. Это между start_end и end_date или больше, чем start_date, если end_date имеет значение null.

Как сделать Laravel красноречивым для этого. Заранее спасибо.

1 Ответ

1 голос
/ 19 февраля 2020

Это некрасиво, но я думаю, что-то подобное должно работать

Model::where(function($query) use ($date){
    $query->where('start_date', '<=', $date)
        ->where('end_date', '>=',  $date);
})->orWhere(function($query) use ($date) {
    $query->where('start_date', '<=', $date)
        ->whereNull('end_date');
})->get()

Редактировать Поскольку вам нужны другие условия, вам нужно обернуть это условие

Model::query()
->where(function($query) use ($date) {
    $query->where(function($query) use ($date){
        $query->where('start_date', '<=', $date)
            ->where('end_date', '>=',  $date);
    })->orWhere(function($query) use ($date) {
        $query->where('start_date', '<=', $date)
            ->whereNull('end_date');
    })
})
->where('another_column', true)
->get()
```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...