Как преобразовать многомерный массив в коллекции в Laravel - PullRequest
0 голосов
/ 01 ноября 2019

Из API у меня есть ответ многомерного массива, например: enter image description here

Как я могу преобразовать этот массив в красноречивый объект, чтобы я мог получить к нему доступ с помощью $collection->Query->Country or $collection->Carriers->where('id',12345) ...

Я пытаюсь:

$res1 = collect($res1)->map(function($row) {
    return collect($row);
});

dd($res1);

, но безуспешно!

Пожалуйста, помогите мне решить эту проблему!

1 Ответ

1 голос
/ 01 ноября 2019

В этом случае вы можете использовать

$collection['Carriers']->where('id',12345)
// or
collect($collection['Carriers'])->where('id',12345)

Для создания новой модели Eloquent с атрибутами вы можете использовать

$query =  (new Query())->setRawAttributes($collection['Query']);

, затем использовать

$query->Country;

Или выможет сделать это грубым способом

$model = (new Model())->setRawAttributes($res1);

и использованием, как вы упомянули

$model->Query->Country or $model->Carriers->where('id',12345)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...