Дата випуску: January 28, 2026 Версія Laravel: 12.49.0
Коротко
Laravel v12.49.0 додає новий метод колекцій hasSole() для перевірки, чи містить колекція рівно один відповідний елемент, а також підтримку підзапитів між колонками, збереження ключів у ланцюжках ресурсних колекцій і підтримку datetime для команди maintenance. Розширено також підтримку enum у сесіях та кеші.
Ключові нововведення:
hasSole() (заміщує containsOneItem())whereBetweenColumns()preserveKeys() для Fluent-ланцюжків ресурсних колекційdown --retrynow() і flash()Cache::flexible() і withoutOverlapping()db:tableArr::dot()Laravel 12.49.0 додає hasSole() до колекцій — зручний спосіб перевірити, чи є в колекції рівно один елемент, що відповідає умові. Метод узгоджений з номенклатурою sole() і замінює containsOneItem().
// Check if collection has exactly one item
$collection->hasSole();
// With a callback filter
$collection->hasSole(fn ($item) => $item->active);
// With key/value pair
$collection->hasSole('status', 'pending');
// With operator syntax
$collection->hasSole('age', '>=', 21);
Метод підтримує ті ж гнучкі сигнатури фільтрів, що й sole(), тож він інтуїтивний для розробників, знайомих з API колекцій Laravel.
Pull Request: #58463
Query builder тепер вміє порівнювати результат підзапиту з двома колонками таблиці за допомогою whereBetweenColumns():
$query->whereBetweenColumns($subquery, ['min_value', 'max_value']);
Це дозволяє перевіряти, чи попадає результат підзапиту в діапазон, заданий значеннями колонок, а не константами. Розширення продовжує попередню роботу із підзапитами для статичних діапазонів.
Pull Request: #58441
AnonymousResourceCollection тепер має метод preserveKeys() для Fluent-ланцюжків, що дозволяє уникнути проміжних змінних:
// Before
$collection = JsonResource::collection($posts);
$collection->preserveKeys = true;
return $collection;
// After
return JsonResource::collection($posts)->preserveKeys();
Це робить налаштування ресурсних колекцій зрозумілішим і послідовнішим з Fluent-API Laravel.
Pull Request: #58443
Опція --retry у php artisan down тепер приймає рядки datetime поряд із кількістю секунд:
# Retry at a specific datetime
php artisan down --retry="2026-01-28 15:30:00"
# Retry tomorrow at 2 PM
php artisan down --retry="tomorrow 14:00"
# Retry in 2 hours
php artisan down --retry="+2 hours"
# Unix timestamp
php artisan down --retry="@1735660200"
Datetime конвертується в формат RFC 7231 для заголовка Retry-After. Якщо вказано минулу дату, команда видає попередження, щоб уникнути помилкових налаштувань під час технічних робіт.
Pull Request: #58509
У цьому релізі продовжено інтеграцію enum — додано підтримку в нових місцях:
Методи сесії:
Методи сесії now() і flash() тепер приймають enum-значення як ключі, уніфікуючи поведінку з іншими методами сесії.
Pull Request: #58459
Методи кешу:
Cache::flexible() і Cache::withoutOverlapping() тепер підтримують enum-ключі для типобезпечного керування ключами кешу.
Pull Request: #58444
Команда php artisan db:table тепер використовує пошукову підказку для вибору таблиці, що спрощує роботу з великими базами даних.
Pull Request: #58442
Виправлення:
Arr::dot() (#58458)Str::afterLast() (#58457)Покращення:
QueueFake::assertPushedTimes публічним (#58511)@param для конструктора SessionGuard (#58493)Відкати:
Для типової аплікації сумісних порушень не очікується. Перед оновленням перегляньте повний changelog для деталей.
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!
Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!