LaravelLaravel 13.39.0: відключення первинного ключа та атомарний кеш
Реліз Laravel 13.39.0 додає атрибут #[Table(key: false)], команду session:garbage-collect, атомарний запис кешу та розширення для черг і тестування.
Записи з 27 жовтня 2026 по 27 жовтня 2026 · оновлено 8 листопада 2026
Головне
- Атрибут #[Table(key: false)] для вимкнення первинного ключа моделі
- Атомарний запис файлів кешу для config, route та event
- Додано тривалість виконання до події JobAttempted
- Нова консольна команда session:garbage-collect
- Методи forceCreate і forceCreateQuietly для зв'язку BelongsToMany
Коротко
У релізі Laravel 13.39.0 з'явилася можливість відключати первинні ключі моделей через атрибут #[Table(key: false)], а також нова команда session:garbage-collect. Файли кешу конфігурацій, маршрутів та подій тепер записуються атомарно. Крім того, оновлення принесло покращення для тестування процесів і пошти, розширення подій черг та низку виправлень в Eloquent.
Нові можливості
База даних та Eloquent
- Вимкнення первинного ключа через атрибут: додано атрибут
#[Table(key: false)], який дозволяє моделям працювати без визначеного первинного ключа. - Нові методи у
BelongsToMany: для зв'язку додано методиforceCreateтаforceCreateQuietly. - Методи створення та відновлення у through-зв'язках: реалізовано підтримку
restoreOrCreate()таcreateOrRestore()для through-релейшенів. - Атрибут
WithoutMigrationEvents: додано новий атрибутWithoutMigrationEventsдля керування подіями міграцій.
Черги та події
- Тривалість виконання у
JobAttempted: до подіїJobAttemptedдодано параметрduration(тривалість також передається для синхронних черг черезsync). - Атомарний кеш: запис кеш-файлів для конфігурацій, маршрутів та подій тепер відбувається атомарно.
Консоль та сесії
- Очищення сесій: створено та зареєстровано нову команду
session:garbage-collect(SessionGarbageCollectCommand). - Методи розміру для валідації масивів: додано методи визначення розміру (size methods) до білдера правил валідації масивів.
Тестування
- Оновлення
BusFake: додано методwithoutDispatchingAfterResponses. - Фейки для
MailFake: додано методиhtml()таplain(). - Шортхенди для процесів: реалізовано підтримку скорочених позначень коду виходу та винятків під час тестування запуску процесів через фейки.
Виправлення та покращення
- Черги:
queue:retryбільше не зупиняється на завданнях із видаленою моделлю, а також виправлено обробку нескалярних ідентифікаторів невдалих завдань; помилки паралелізму під час резервування завдань уdatabaseбільше не призводять до падіння. - База даних та транзакції:
RefreshDatabaseтепер відкочує всі рівні вкладених транзакцій після кожного тесту; менеджер транзакцій відкочується при невдаломуcommit; виправлено блокування транзакцій у PostgreSQL через кеш-блокування. - Eloquent: колонки півот-таблиць тепер кваліфікуються всередині замикань
wherePivot; виправлено роботуlatest()таoldest()із підзапитамиjoin; виправлено методиrestoreOrCreate()іcreateOrRestore()на зв'язках; виправлено помилки N+1 під час завантаження зв'язків у колекціях JSON:API ресурсів. - Маршрутизація та Octane: усунено витік попереднього маршруту в запити зі статусом 404 під середовищем Octane; виправлено тип повернення
Request::route(), коли маршрут не знайдено. - Валідація: виправлено помилку у
Rule::anyOf()при передачі асоціативних масивів; виправлено виняток уdistinct:ignore_caseна значеннях із некоректним кодуванням UTF-8. - Кеш та сховище: потоковий обгортковий протокол
phar://заблоковано уFilesystem::exists()таisFile()(при цьому дозволено читання файлів із запущеного phar); виправлено командуcache:prune-stale-tagsз опцієюSCAN_PREFIXу phpredis; клієнт phpredis автоматично перебудовується у разі попередження broken pipe. - HTTP та розсилки:
Http::batch()більше не вважає помилки викликівretry()таthrow()успішними; зображення в сповіщеннях Markdown тепер вбудовуються лише один раз. - Команди: команда
schedule:interruptтепер завершується з помилкою, якщо вимкнено опитування переривань; значення--retryу командіdownтепер конвертується у GMT; командаinstall:broadcastingбільше не пропускає файлиapp.jsxтаapp.js.
Версії тижня
- v13.39.0 — 2026-10-27
Огляд підготовлено автоматично за офіційними release notes за допомогою ШІ та перевірено на відповідність джерелу. Точні формулювання дивіться в оригіналі. Як ми працюємо