Запрос Laravel для отображения записей, начинающихся как можно скорее, но не записей, в которых дата прошла

#laravel

#laravel

Вопрос:

Я немного новичок, поэтому знаю только основы. У меня есть таблица курсов, в которой есть start_date курса (отметка времени), и я хотел бы показать курсы, которые начинаются с текущей даты, но не курсы, которые прошли (например, вчерашние курсы).

Мне также нужно не делать этого с областью видимости.

Моя модель — приложение Курс. Мой текущий код

 $course = Course::latest()->take(6)->get());
  

Кто-нибудь может помочь? Спасибо!

Комментарии:

1. Есть ли вообще latest функция в построителе запросов? Я бы подумал, что вам придется использовать ->orderBy('start_date', 'desc') , если вы хотите, чтобы они были отсортированы. Кроме того, изучите использование ->whereDate() , чтобы ограничить результаты любой датой после сегодняшнего дня.

2. Спасибо, Тим, я посмотрю на это. Но да, latest() выполняет created_at, desc!

Ответ №1:

Попробуйте это:

 $course = Course::where('start_date', '>', Carbon::now())->orderBy('start_date', 'desc')->take(6)->get());
  

Это сработает, если вы добавите start_date в $dates переменную.

Комментарии:

1. Я бы пошел с '>=' или вы не увидите курсы сегодняшнего дня