Laravel запись данных с API - PullRequest
       0

Laravel запись данных с API

1 голос
/ 17 апреля 2020

Сохраняю полученные данные из API в базу данных. В моем результате API есть следующий ответ:

"opponents": [
{
"opponent": {
"acronym": "RH",
"id": 127276,
"image_url": "/image/127276/reverse_heaven_logo_std.png",
"location": null,
"modified_at": "2020-04-14T19:03:48Z",
"name": "Reverse Heaven",
"slug": "reverse-heaven"
},
"type": "Team"
},
{
"opponent": {
"acronym": " neon",
"id": 2061,
"image_url": "/image/2061/neon_esport.png",
"location": "PH",
"modified_at": "2020-04-14T19:04:02Z",
"name": "Neon Esports",
"slug": "neon-esports"
},
"type": "Team"
}
],

Если я использую var_dump($opponents), я получаю только последний opponent от API. Как я могу сохранить ровно 2 значения в массиве под одним именем opponent->name?

Ответы [ 2 ]

2 голосов
/ 17 апреля 2020

Поскольку вы используете laravel, вы можете использовать коллекции.

$decoded = json_decode($opponents);

return collect($decoded->opponents)->pluck('opponent.name')->toArray();

вы можете сделать это в одну строку, если хотите,

return collect(json_decode($opponents)->opponents)->pluck('opponent.name')->toArray();
0 голосов
/ 17 апреля 2020

сначала декодируйте json вот так

$decoded_opponents = json_decode($opponents);

, затем создайте пустой массив

$array = [];

запустите foreach l oop для ваших декодированных данных

foreach($decoded_opponents->opponents as $key=>$value){
    $array[]=$value->opponent->name;
}

имена теперь хранятся в массиве $

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...