Коллекции в Laravel

В Laravel коллекции представляют собой расширенные, мощные обертки вокруг массивов PHP. Они предоставляют удобный и выразительный API для работы с данными, позволяя легко выполнять различные операции, такие как фильтрация, сортировка, трансформация и агрегация данных.

Основные характеристики и возможности коллекций в Laravel:

Создание коллекции: Коллекцию можно создать из любого массива или результата базы данных. Для этого используется класс

Illuminate\Support\Collection; 
$collection = collect([1, 2, 3, 4, 5]);

Методы коллекций: Коллекции предоставляют множество методов для работы с данными. Вот несколько наиболее часто используемых:

map: применяет заданную функцию ко всем элементам коллекции и возвращает новую коллекцию с измененными элементами.

collection = collect([1, 2, 3, 4, 5]); 
$squared = $collection->map(function ($item) { return $item * $item; });

filter: фильтрует коллекцию на основе заданного условия.

$filtered = $collection->filter(function ($value) { return $value > 2; });

reduce: сворачивает коллекцию до одного значения, используя указанную функцию.

$sum = $collection->reduce(function ($carry, $item) { return $carry + $item; });

pluck: извлекает определенное значение из каждого элемента коллекции.

$collection = collect([ 
['name' => 'John', 'age' => 30], 
['name' => 'Jane', 'age' => 25], 
]);
 $names = $collection->pluck('name');

sortBy: сортирует коллекцию по указанному ключу.

$sorted = $collection->sortBy('age');

    Ленивые коллекции: Laravel также поддерживает ленивые коллекции, которые обрабатывают данные по мере необходимости, что полезно для работы с большими наборами данных.

    Illuminate\Support\LazyCollection; $lazyCollection = LazyCollection::make(function () { for ($i = 0; $i < 10000; $i++) { yield $i; } });

    Цепочка вызовов: Один из наиболее мощных аспектов коллекций — это возможность объединять вызовы методов в цепочки, что делает код более читаемым и выразительным.

    $result = collect([1, 2, 3, 4, 5])->filter(function ($item) { return $item > 2; })->map(function ($item) { return $item * 2; }) ->all();

      Коллекции делают код в Laravel более лаконичным и понятным, позволяя сосредоточиться на логике приложения, а не на технических деталях манипуляций с данными.

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *