Команда Laravel випустила версію v12.8.0, яка включає автоматичне завантаження зв'язків, створення екземпляра колекції з рядка JSON та інші нововведення:
Сергій Литвинчук представив функцію автоматичного завантаження зв'язків:
У великих проєктах важко відслідковувати та вручну вказувати, які зв'язки повинні бути завантажені заздалегідь, особливо якщо ці зв'язки глибоко вкладені або використовуються динамічно. Тому автоматичне завантаження зв'язків може бути корисним.
// замість цього
$projects->load([
'client.owner.details',
'client.customPropertyValues',
'clientContact.customPropertyValues',
'status',
'company.statuses',
'posts.authors.articles.likes',
'related.statuses'
]);
// можна використовувати це
$projects->withRelationshipAutoloading();
Ось ще один приклад із опису запиту на зміни:
$orders = Order::all()->withRelationshipAutoloading();
foreach ($orders as $order) {
echo $order->client->owner->company->name;
}
// автоматичні виклики:
// $orders->loadMissing('client');
// $orders->loadMissing('client.owner');
// $orders->loadMissing('client.owner.company');
Ви можете увімкнути автоматичне завантаження для моделей за допомогою такого статичного методу:
Model::automaticallyEagerLoadRelationships();
@DarkGhostHunter додав метод fromJson до класу Collection, який дозволяє створити колекцію з рядка JSON:
// Раніше
$collection = new Collection(json_decode($json, true));
// Тепер
$collection = Collection::fromJson($json);
Метод fromJson() також підтримує аргументи глибини та флагів, які ви можете передати до json_decode():
$collection = Collection::fromJson(json: $json, flags: JSON_THROW_ON_ERROR);
Філіп Ієцці реалізував методи forceCreateMany() та forceCreateManyQuietly() для зв'язку HasOneOrMany:
$post->comments()->forceCreateMany($data);
$post->comments()->forceCreateManyQuietly($data);
Приклад із опису запиту на зміни, який вимагає примусового створення окремих моделей:
// Раніше
collect($comments)
->map(fn (array $comment) => [
...$comment,
// підOverride деякі атрибути
])
->each(fn (array $comment) => $post->comments()->forceCreateQuietly($comment));
// Тепер
collect($comments)
->map(fn (array $comment) => [
...$comment,
// підOverride деякі атрибути
])
->pipe($post->comments()->forceCreateManyQuietly(...));
Ви можете переглянути повний список нових функцій та оновлень нижче, а також зміни між 12.7.0 та 12.8.0 на GitHub. Примітки про випуск безпосередньо з журналу змін:
HasOneOrMany від @onlime в https://github.com/laravel/framework/pull/55262fromJson() до Collection від @DarkGhostHunter в https://github.com/laravel/framework/pull/55310illuminate/database як окремого пакету від @crynobone в https://github.com/laravel/framework/pull/55309Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!
Ви хочете навчитися, як інтегрувати Google OAuth у вашому проекті Laravel, використовуючи Socialite? Дізнайтеся, як налаштувати доступ до сервісів Google, таких як Календар, у нашій сьогоднішній статті
Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!