laravel 5.2 следующие 3 события с сегодняшнего дня - PullRequest
0 голосов
/ 01 сентября 2018

Я хочу настроить календарь событий. Пользователь должен видеть, что следующие 3 события с сегодняшнего дня поэтому, когда дата прошла, событие исчезает как сделать? спасибо

Мой контроллер:

class AccueilController extends Controller {
    public function affichePage() {
        $agenda = Agenda::all()->take(3)->sortBy('date');
        return view('Accueil.Page',compact('slides','agenda'));
    }
}

1 Ответ

0 голосов
/ 02 сентября 2018

Ваш код не сортируется из-за того, как вы делаете свой звонок. Вот что сейчас происходит:

$agenda = Agenda::all()

Загрузка каждая повестка дня в базе данных

->take(3)

Из всех тех программ, которые я загрузил, возьмите первые три.

->sortBy('date');

Сортировка только эти три по дате.

Чтобы достичь того, чего вы хотите, судя по вашему запросу, вы должны позвонить

$agenda = Agenda::where('date', '>=', $the_date)->orderBy('date', 'asc')->take(3)->get();

Где $ the_date - это дата, которую вы хотите установить как минимум. Обычно для этого вы используете функцию даты из библиотеки Carbon:

$the_date = \Carbon\Carbon::now();

Этот запрос вынуждает выполнить работу в базе данных, с помощью вызова get , наконец, получающего результаты. Для того, чтобы сообщить базе данных:

  • Отфильтруйте все повестки дня только для тех, чья дата больше, чем та, которую мы передаем
  • Заказ отфильтрованного набора по дате, начиная с самого раннего
  • Возьмите первые три из этого отфильтрованного набора
  • Вернуть этот набор в переменную $ agendas.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...