Ой, ничего не найдено!

К сожалению, по вашему запросу пока ничего нет (но это только пока!), зато вы можете подписаться на нашу замечательную email-рассылку, чтобы не пропустить самое интересное в будущем.

  • 69

Laravel 11.42: используем встроенные сокращения для дат в Query Builder для чистого и понятного кода

  • 1 минута на чтение

Недавно, когда у меня было свободное время между проектами (читай: не было проектов совсем), я решил посмотреть, что там нового появилось в Laravel 11. Пока Laravel 12 не застал меня врасплох, было решено погрузиться в изучение свежих обновлений. Среди всего прочего моё внимание привлек релиз Laravel 11.42, вышедший 12 февраля 2024 года. И знаете, там есть кое-что действительно интересное!

Что нового появилось в Laravel 11.42?

В новой версии Laravel в Query Builder появилась замечательная штука — встроенные сокращения для указания относительных дат. Это значит, что вместо привычных громоздких конструкций с использованием метода now()->subDays(7) можно писать простой и читаемый код, вроде "7 days ago".

Как это выглядело раньше

Представьте, вам нужно получить все записи, созданные за последние 7 дней. Раньше мы писали примерно такой код:

$posts = Post::whereDate('created_at', '>=', now()->subDays(7))->get();

Не то чтобы слишком сложно, но выглядит немного громоздко, особенно если таких конструкций много и даты разные.

Что изменилось теперь?

Теперь, благодаря Laravel 11.42, можно использовать простые и естественные сокращения дат. Тот же запрос можно переписать вот так:

$posts = Post::whereDate('created_at', '>=', '7 days ago')->get();

Какие сокращения теперь доступны?

Вот несколько примеров сокращений, которые теперь официально поддерживаются:

  • yesterday (вчера)
  • today (сегодня)
  • tomorrow (завтра)
  • 3 days ago (3 дня назад)
  • next week (следующая неделя)
  • last month (прошлый месяц)
  • 2 years ago (2 года назад) Эти выражения будут автоматически конвертированы Laravel в соответствующие даты и время.
Начните с нами: 6 месяцев бесплатного хостинга!
Используйте промокод FREE6MONTH и раскройте потенциал своего сайта без финансовых вложений.

Реальный пример рефакторинга

Допустим, раньше ваш код выглядел так:

$recentUsers = User::where('last_login', '>=', now()->subMonths(1))->get();

Теперь тот же код выглядит намного чище и понятнее:

$recentUsers = User::where('last_login', '>=', '1 month ago')->get();

Чувствуете разницу? Читабельность и простота кода существенно выросли!

Почему это важно?

Может показаться, что это небольшое улучшение, но оно значительно упрощает чтение и поддержку кода. Чем проще и естественнее выглядит код, тем быстрее его можно понять и обслуживать. Такие улучшения делают жизнь разработчиков проще и приятнее, что особенно ценно в больших проектах или когда к проекту возвращаешься спустя время.

Заключение

Вот так, казалось бы, мелкое изменение в Laravel 11.42 сделало мой день чуть лучше, а код чуть чище. Иногда даже небольшие улучшения способны вдохновить вернуться к старым проектам или просто получить удовольствие от изучения новых возможностей фреймворка. Надеюсь, эта новинка пригодится и вам!

Хостинг, на который можно положиться!
Siteko.net

Устали от медленного хостинга или дорогих тарифов? Тогда вам к нам! Siteko.net — это быстрый и простой хостинг для тех, кто ценит удобство и стабильность.

  • Без падений и нервов — наш uptime почти всегда 100%.
  • Гибкие тарифы — только нужные функции, ничего лишнего.
  • Скорость— сайты грузятся, как пуля!
  • Удобно — разобраться сможет даже новичок, всё под рукой.
  • Поддержка всегда рядом 24/7 поможем решить любой вопрос.

Заходите на Siteko.net и попробуйте нас бесплатно первый месяц! Мы делаем всё, чтобы ваш сайт работал без проблем.

Siteko.net — просто, быстро и надёжно!