Команда Laravel випустила версію 12.43: у ній з’явилися нові методи Eloquent-колекцій для злиття видимості атрибутів у колекції, можливість робити HTTP Client Response макросним та інші зміни.
Як і в попередніх релізах, цього разу також багато внесків — дякуємо всім, хто робить Laravel кращим. Ось головні новинки у Laravel 12.43!
Mahmoud Ramadan додав методи mergeHidden() та mergeVisible() до Eloquent-колекцій — тепер можна змінювати видимість атрибутів для всієї колекції:
use App\Models\User;
$users = User::withWhereHas('comments')->get();
$users->mergeVisible(['updated_at']);
Kevin Bui додав трейт Macroable до класу Response HTTP-клієнта:
use Illuminate\Http\Client\Response;
Response::macro(
'movieFields',
fn () => $this->collect()->only('title', 'year', 'runtime', 'director', 'plot')
);
$response = Http::get(...);
$response->movieFields();
@kenneth-saey оновив метод afterResponse() у PendingDispatch, додавши можливість умовно відкладати виконання Job після відправлення відповіді браузеру:
// Before
if (app()->environment('local')) {
MyJob::dispatch($myData)
->afterResponse();
} else {
MyJob::dispatch($myData);
}
// After
MyJob::dispatch($myData)
->afterResponse(! app()->environment('local'));
Bert Bredewold додав можливість передавати Enum для імені диска при використанні storage fake. Тепер fake() узгоджується з Storage::disk():
// New in Laravel 12.43
Storage::fake(Disk::Local);
// Already possible before Laravel 12.43
Storage::disk(Disk::Local);
Artyom Osepyan додав тест-ассерцію для коду клієнтської помилки HTTP 424 Failed Dependency. Ця відповідь означає, що операцію неможливо виконати, бо вона залежала від іншої дії, яка зазнала невдачі.
$this->assertFailedDependency();
// Equivalent to
$this->assertStatus(424);
Повний список змін і оновлень дивіться нижче та на GitHub у порівнянні між 12.42.0 і 12.43.0. Наступні нотатки взяті з changelog:
$batchId у трейті Batchable від @markieo1 у https://github.com/laravel/framework/pull/58069cache_locks під час очищення від @jackbayliss у https://github.com/laravel/framework/pull/58071null як cache store, що викликало депрікацію в PHP 8.5 — @jnoordsij у https://github.com/laravel/framework/pull/58074null в array_key_exists в класі AsPivot — @jnoordsij у https://github.com/laravel/framework/pull/58073Facade — @jnoordsij у https://github.com/laravel/framework/pull/58072ServeCommand — @bashgeek у https://github.com/laravel/framework/pull/58080Storage::fake() приймати enum як ім'я диска — @bbredewold у https://github.com/laravel/framework/pull/58076testCanRetrieveAllFailedJobs — @jackbayliss у https://github.com/laravel/framework/pull/58096null — @jackbayliss у https://github.com/laravel/framework/pull/58108PendingDispatch::afterResponse умовним — @kenneth-saey у https://github.com/laravel/framework/pull/58099mergeHidden і mergeVisible до класу Collection — @mahmoudmohamedramadan у https://github.com/laravel/framework/pull/58110ParseError в hasEvenNumberOfParentheses коли активний Xdebug — @crynobone у https://github.com/laravel/framework/pull/58128Password::required() — тепер воно має помилково проходити, коли значення відсутнє — @faisuc у https://github.com/laravel/framework/pull/58125ConnectionEstablished при повторному підключенні до бази даних — @crynobone у https://github.com/laravel/framework/pull/58136Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!
Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!
Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку