Laravel: разобрать JSON для просмотра - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь показать JSON данные из этого https://pomber.github.io/covid19/timeseries.json, но я получил ошибку:

(ErrorException(code: 0): Undefined index: confirmed

Я ожидаю, что Я могу показать список названий стран с указанием даты, подтверждено и т. Д. c.

Вот мое мнение:

@foreach($results as $json_d)

  {{ $json_d['date'] }}
  {{ $json_d['confirmed'] }}
  {{ $json_d['deaths'] }}
  {{ $json_d['recovered'] }}

@endforeach

А вот мой контроллер:

$client = new Client();

$request = $client->get('https://pomber.github.io/covid19/timeseries.json');
$response = $request->getBody()->getContents();
$results = json_decode($response, true);

return view('dashboard', compact('results'));

Любая помощь будет оценена :)

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Это потому, что вы должны сделать это как nested for. Как ответ Дино, но есть способ получить ключ от страны.

  @foreach($results as $key => $val)
      Data for the country: {{ $key }}
    @foreach(((array)$results)[$key] as $data)
        {{ $data['date'] }}
        {{ $data['confirmed'] }}
        {{ $data['deaths'] }}
        {{ $data['recovered'] }}
    @endforeach
  @endforeach
0 голосов
/ 19 марта 2020

В результате вы получаете Guzzle список стран

dd($results);

дает

array:152 [▼
  "Thailand" => array:57 [▶]
  "Japan" => array:57 [▶]
  "Singapore" => array:57 [▶]
  "Nepal" => array:57 [▶]
  "Malaysia" => array:57 [▶]
  "Canada" => array:57 [▶]
  "Australia" => array:57 [▶]
  "Cambodia" => array:57 [▶]
  "Sri Lanka" => array:57 [▶]
  "Germany" => array:57 [▶]
  "Finland" => array:57 [▶]
  ...

, что означает, что вам нужен еще один oop

@foreach($results as $countryData)
   @foreach($countryData as $data)
       {{ $data['date'] }}
       {{ $data['confirmed'] }}
       {{ $data['deaths'] }}
       {{ $data['recovered'] }}
   @endforeach
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...