2016-12-21 6 views
3

У меня есть столбец в моей таблице под названием date, который имеет тип TIMESTAMP.Laravel Eloquent где с расчетом на значение

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

Я думаю, что я хочу быть в состоянии сделать что-то вроде этого:

public function scopeTomorrow($query) 
{ 
    return $query->where('date', function ($date) { 
     return \Carbon\Carbon::parse($date)->isTomorrow(); 
    }); 
} 

Но переменная $date в настоящее время только конструктор запросов.

Как создать оператор where, который принимает значение и выполняет какие-либо проверки?

ответ

1

Вы можете сделать это:

return $query->where('date', '>=', Carbon::tomorrow()) 
      ->where('date', '<=', Carbon::tomorrow()->endOfDay()); 

Или:

return $query->whereBetween('date', [Carbon::tomorrow(), Carbon::tomorrow()->endOfDay()]); 

Кроме того, вероятно, вы хотите добавить date к $dates переменной ,

+0

Спасибо @Alexey. В будущем это означает, что нет способа реально принять значение? – tam5

+0

Я не думаю, что здесь можно использовать что-то вроде 'isTomorrow()'. –

0

Вы можете сделать что-то вроде этого:

public function scopeTomorrow($query) 
{ 
    $tomorrow = \Carbon\Carbon::now()->addDay(1); 

    return $query->where('date', '=', $tomorrow); 
} 
Смежные вопросы