Ваш код не сортируется из-за того, как вы делаете свой звонок. Вот что сейчас происходит:
$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.