Метод wrap
Метод wrap в Laravel предназначен для универсальной работы с данными. Он гарантирует, что результат всегда будет представлен в виде массива или коллекции. Если переданное значение является скалярным (строка, число), оно будет помещено в массив. Если передаётся объект, метод пытается преобразовать его в массив или коллекцию. Это особенно полезно при работе с API или динамическими данными, где тип входного значения заранее неизвестен.
Синтаксис
<?php
collect()->wrap($value);
?>
Метод можно вызывать как на экземпляре Collection, так и через фасад Arr. Первым и единственным параметром передаётся значение для обёртки. В результате возвращается массив или коллекция.
Пример
Используем метод wrap для преобразования скалярного значения в массив:
<?php
use Illuminate\Support\Arr;
$res = Arr::wrap('article');
var_dump($res);
?>
Результат выполнения кода:
["article"]
Как видите, строка была помещена в массив. Метод вернул массив с одним элементом.
Пример
Если переданное значение уже является массивом, метод вернёт его без изменений:
<?php
use Illuminate\Support\Arr;
$arr = ['a', 'b', 'c'];
$res = Arr::wrap($arr);
var_dump($res);
?>
Результат выполнения кода:
["a", "b", "c"]
Массив остался неизменным, метод просто вернул его.
Пример
Рассмотрим работу метода с коллекцией. Метод wrap используется как статический метод класса Collection:
<?php
use Illuminate\Support\Collection;
$res = Collection::wrap([1, 2, 3]);
var_dump($res);
?>
Результат выполнения кода:
object(Illuminate\Support\Collection)#1 (1) {
["items":protected]=>
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
}
В этом случае метод вернул объект коллекции, содержащий переданный массив.
Пример
Метод также может обрабатывать нулевое значение null. В этом случае он вернёт пустой массив:
<?php
use Illuminate\Support\Arr;
$res = Arr::wrap(null);
var_dump($res);
?>
Результат выполнения кода:
[]
Это позволяет избежать ошибок при работе с неопределёнными значениями.