atachrus
@atachrus

Как правильно составить SQL запрос через Eloquent?

Подскажите как правильно при помощи Eloquent сделать выборку с условием ИЛИ
На выходе нужен вот этот запрос
select * from tableName where (event_id=50 and event_date > NOW()) or (event_id=50 and event_status=7451)


$schedulers = Schedule::with('status')->where('event_id', $eventId)->orWhere() ???;
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
colonel
@colonel
Разработчик PHP, Laravel
$shedulers = Shedule::where(function($query) use($eventId){
        $query->where('event_id', $eventId)
            ->where('event_date', '>', 'NOW()')
    })
    ->orWhere(function($query) use($eventId){
        $query->where('event_id', $eventId)
             ->where('event_status', 7451);
    })
    ->get();


Не уверен, возможно 'NOW()' нужно завернуть в DB::raw('NOW()')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@aleksejjjj
Если event_id у вас одинаковый то должно работать как-то так:
$eventId = 50;
$eventStatus = 7451;

$shedulers = Shedule::whereEventId($eventId)->where(function($query) use($eventStatus) {
    $query->where('event_status', $eventStatus)
        ->orWhere('event_date', '>', Carbon::now()->toDateTimeString());
    })
    ->get();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
4px Москва
от 100 000 до 150 000 руб.
GOR
от 80 000 до 110 000 руб.
Digital-агентство Nimax Санкт-Петербург
от 80 000 до 110 000 руб.
15 авг. 2018, в 01:47
30000 руб./за проект
15 авг. 2018, в 01:09
70000 руб./в месяц
14 авг. 2018, в 22:43
350 руб./за проект