Метод toArray
Метод toArray используется для преобразования экземпляра модели
Eloquent и всех её загруженных связей в массив. Этот метод полезен
при подготовке данных для API, передачи в представления или
преобразования в JSON. Он возвращает ассоциативный массив, где
ключи - это имена атрибутов модели.
Синтаксис
<?php
Model::find($id)->toArray();
?>
Пример
Давайте получим модель пользователя с id равным 1
и преобразуем её в массив:
<?php
use AppModelsUser;
$res = User::find(1)->toArray();
print_r($res);
?>
Результат выполнения кода:
[
"id" => 1,
"name" => "John Doe",
"email" => "john@example.com",
"created_at" => "2026-09-07 10:00:00",
"updated_at" => "2026-09-07 10:00:00"
]
Пример
Метод toArray также преобразует загруженные отношения.
Получим пользователя с его постами в виде массива:
<?php
use AppModelsUser;
$res = User::with('posts')->find(1)->toArray();
print_r($res);
?>
Результат выполнения кода:
[
"id" => 1,
"name" => "John Doe",
"email" => "john@example.com",
"created_at" => "2026-09-07 10:00:00",
"updated_at" => "2026-09-07 10:00:00",
"posts" => [
[
"id" => 1,
"user_id" => 1,
"title" => "First Post",
"content" => "Post content",
"created_at" => "2026-09-07 10:00:00",
"updated_at" => "2026-09-07 10:00:00"
],
[
"id" => 2,
"user_id" => 1,
"title" => "Second Post",
"content" => "More content",
"created_at" => "2026-09-07 10:00:00",
"updated_at" => "2026-09-07 10:00:00"
]
]
]
Пример
Используем метод toArray на коллекции моделей.
Получим массив всех пользователей:
<?php
use AppModelsUser;
$res = User::all()->toArray();
print_r($res);
?>
Результат выполнения кода:
[
[
"id" => 1,
"name" => "John Doe",
"email" => "john@example.com",
"created_at" => "2026-09-07 10:00:00",
"updated_at" => "2026-09-07 10:00:00"
],
[
"id" => 2,
"name" => "Jane Smith",
"email" => "jane@example.com",
"created_at" => "2026-09-07 10:00:00",
"updated_at" => "2026-09-07 10:00:00"
]
]
Пример
Метод toArray автоматически применяет преобразования
типов из свойства casts модели. Например, дата преобразуется
в строку, а boolean в число:
<?php
use AppModelsUser;
$res = User::find(1)->toArray();
print_r($res);
?>
Результат выполнения кода:
[
"id" => 1,
"name" => "John Doe",
"email" => "john@example.com",
"is_admin" => 1,
"created_at" => "2026-09-07 10:00:00"
]
Смотрите также
-
метод
toJson,
который преобразует модель в формат JSON -
метод
makeHidden,
который временно скрывает атрибуты модели -
метод
makeVisible,
который временно делает видимыми атрибуты модели -
свойство
hidden,
которое определяет атрибуты, исключаемые из массива и JSON