РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
982 of 1392 menu

Класс Collection

Класс Collection является одним из ключевых компонентов Laravel, предназначенным для работы с массивами данных. Он предоставляет богатый набор методов для фильтрации, преобразования, сортировки и агрегации элементов. Коллекции особенно полезны при работе с результатами запросов Eloquent, так как все методы возвращают новые экземпляры коллекций, что позволяет строить цепочки вызовов. Класс реализует интерфейсы ArrayAccess, Countable и IteratorAggregate, что делает его очень гибким в использовании.

Создание коллекции

Существует несколько способов создания коллекции. Самый простой - использовать глобальную функцию collect, которая принимает массив и возвращает экземпляр класса Collection. Также можно использовать статический метод make или создать коллекцию из результата запроса к базе данных.

<?php use Illuminate\Support\Collection; use App\Models\User; // Creating a collection using the collect function $coll1 = collect(['a', 'b', 'c', 'd', 'e']); // Creating a collection using the static make method $coll2 = Collection::make([1, 2, 3, 4, 5]); // Creating a collection from a query result $coll3 = User::where('active', 1)->get(); echo $coll1->count(); echo "\n" . $coll2->count(); echo "\n" . $coll3->count(); ?>

Результат выполнения кода:

"5 5 3"

Метод all - получение всех элементов

Метод all возвращает все элементы коллекции в виде обычного массива PHP. Это полезно, когда нужно работать с данными вне контекста коллекции.

<?php use Illuminate\Support\Collection; $coll = collect(['a', 'b', 'c', 'd', 'e']); $res = $coll->all(); print_r($res); ?>

Результат выполнения кода:

"Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )"

Метод count - подсчёт элементов

Метод count возвращает общее количество элементов в коллекции. Этот метод также доступен через интерфейс Countable.

<?php use Illuminate\Support\Collection; $coll = collect(['a', 'b', 'c', 'd', 'e']); $res = $coll->count(); echo $res; ?>

Результат выполнения кода:

"5"

Метод isEmpty - проверка на пустоту

Метод isEmpty проверяет, пуста ли коллекция. Возвращает true, если коллекция не содержит элементов, и false в противном случае. Существует также обратный метод isNotEmpty.

<?php use Illuminate\Support\Collection; $coll1 = collect(['a', 'b', 'c', 'd', 'e']); $coll2 = collect([]); $res1 = $coll1->isEmpty(); $res2 = $coll2->isEmpty(); echo "First collection is empty: " . ($res1 ? 'true' : 'false'); echo "\nSecond collection is empty: " . ($res2 ? 'true' : 'false'); ?>

Результат выполнения кода:

"First collection is empty: false Second collection is empty: true"

Метод toArray - преобразование в массив

Метод toArray преобразует коллекцию в обычный массив PHP. Если коллекция содержит модели Eloquent, они также будут преобразованы в массивы.

<?php use Illuminate\Support\Collection; $coll = collect(['a', 'b', 'c', 'd', 'e']); $res = $coll->toArray(); print_r($res); ?>

Результат выполнения кода:

"Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )"

Метод toJson - преобразование в JSON

Метод toJson преобразует коллекцию в JSON-строку. Это удобно для возврата данных в API-ответах.

<?php use Illuminate\Support\Collection; $coll = collect(['a', 'b', 'c', 'd', 'e']); $res = $coll->toJson(); echo $res; ?>

Результат выполнения кода:

"["a","b","c","d","e"]"

Смотрите также

  • функция collect,
    которая создаёт коллекцию из массива
  • метод filter,
    который фильтрует элементы коллекции
  • метод map,
    который преобразует каждый элемент коллекции
  • метод pluck,
    который извлекает значения по ключу из коллекции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить