Коллекция Laravel, содержащая модель в массив


У меня есть коллекция Laravel, содержащая несколько пользовательских моделей.

Collection([
    User,
    User,
])

Модель содержит, например, имя пользователя, имя, фамилию, адрес электронной почты, дату рождения. Мне нужно только имя пользователя, адрес электронной почты, дата и иметь его в таком массиве.

array(
    array('jonhdoe', '[email protected]', '1-1-1970')
)

Чтобы я мог получить к нему доступ с помощью

$username = $array[0][0]
$email = $array[0][1]

И не

$username = $array[0]['username']
$email = $array[0]['email']

Я смотрел на помощников Laravel каждый или карту, но почему-то не могу заставить ее работать.

Author: Matthieu, 2018-01-24

2 answers

only() вернет массив только указанных столбцов. И toArray() преобразует коллекцию в массив:

$collection->map(function($i) {
    return array_values($i->only('username', 'email', 'date'));
})->toArray();
 4
Author: Alexey Mezenin, 2018-01-24 12:49:11

Используйте для отображения()-

$collection_in_arrays = $collection->toArray();

Метод toArray преобразует коллекцию в обычную PHP array. Если значения collection's являются Красноречивыми моделями , модели также будут преобразованы в arrays.

 0
Author: Sohel0415, 2018-01-24 12:34:50