Перетворення будь-якого значення в колекцію за допомогою методу Collection::wrap у Laravel

Перекладено ШІ 0 Laravel News 11 червня, 2025

Метод Collection::wrap у Laravel дозволяє з легкістю перетворювати різні типи даних у колекції, що забезпечує однорідну обробку незалежно від формату введення. Дізнайтеся, як цей метод може зробити ваш код надійнішим та гнучкішим у нашій статті!

Метод Collection::wrap у Laravel забезпечує безперебійну конверсію різних типів даних у колекції, гарантуючи однакову обробку колекцій незалежно від формату вхідних даних

Метод wrap ефективно працює з різними типами значень:

use Illuminate\Support\Collection;
 
// Обгортка одного значення
$collection = Collection::wrap('Alice Smith');
// Результат: ['Alice Smith']
 
// Обгортка масиву
$collection = Collection::wrap(['Alice Smith']);
// Результат: ['Alice Smith']
 
// Обгортка існуючої колекції
$collection = Collection::wrap(collect('Alice Smith'));
// Результат: ['Alice Smith']

Ось приклад використання у сервісі сповіщень по електронній пошті:

class NotificationService
{
    public function sendEmails($recipients, $message)
    {
        return Collection::wrap($recipients)
            ->map(fn($email) => $this->validateEmail($email))
            ->filter()
            ->each(fn($email) => $this->dispatch($email, $message));
    }
 
    public function assignCategories($product, $categories)
    {
        $currentCategories = $product->categories;
        $newCategories = Collection::wrap($categories)
            ->unique()
            ->diff($currentCategories);
 
        $product->categories()->sync($newCategories);
 
        return $product;
    }
 
    public function formatNotifications($notifications)
    {
        return Collection::wrap($notifications)
            ->map(fn($notification) => [
                'id' => $notification->id,
                'message' => $notification->content,
                'timestamp' => $notification->created_at
            ])
            ->sortByDesc('timestamp');
    }
}
 
class AlertController extends Controller
{
    public function broadcast(Request $request, NotificationService $service)
    {
        $alerts = AlertService::latest($request->limit);
        return $service->formatNotifications($alerts);
    }
}

Метод wrap забезпечує єдину обробку колекцій незалежно від типу вхідних даних, роблячи ваш код більш надійним і гнучким

Популярні

Інше, що варто прочитати

17 Оновлено 26 червня, 2026

Обробка геопросторових даних за допомогою Laravel Magellan

Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!

38 Оновлено 26 червня, 2026

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

10 Оновлено 26 червня, 2026

Усе, що ми знаємо про Laravel 12

Laravel 12 обіцяє стати важливим оновленням, яке зосереджене на підтримці й оптимізації, забезпечуючи безболісний перехід для більшості застосунків. Чи готові ви дізнатися, які нові можливості та зміни чекають на вас у цій версії