Обработка ответа в формате JSON

127
05 января 2020, 23:30

Есть ответ в формате json (запрос отправлял через Guzzle Laravel, использовал готовый API), я его десериализовал через json_decode.

public function raspget(RaspRequest $request)
{
  $client = new Client([
  'base_uri' => 'http://localhost:8080',
  ]);
  $attributes = $request->only(['departure_station', 'arrival_station', 'date']);
  $response = $client->request('GET', 'https://api.rasp.yandex.net/v3.0/search/', [
    'query' => [
      'apikey'          => 'I_WONT_TELL_YOU',
      'from'            => $attributes['departure_station'],
      'to'              => $attributes['arrival_station'],
      'date'            => $attributes['date'],
      'lang'            => 'ru_RU',
      'transport_types' => 'suburban',
    ]
  ]);
  $times = json_decode($response->getBody(), true);
  return view('rasps.raspgot')->withTimes($times);
}

Так как ответ хранит в себе расписание на текущий день, мне нужно отобразить его в blade в таблице через цикл foreach. У меня вылетает ошибка: Undefined Index. Как мне получать данные из ответа и выводить в blade? Структура ответа здесь: https://tech.yandex.ru/rasp/doc/reference/schedule-point-point-docpage/

Answer 1

Решил проблему!!! Так как нам известно число рейсов расписания, которые мы ищем, нужно загрузить сперва это число из JSON-ответа: $total = $times['pagination']['total']; Далее в шаблон blade мы передаём тот самый ответ $times и параметр $total и уже в самом шаблоне делаем цикл for в таблицу:

    @for ($key = 0; $key < $total; $key++)
    <tr>
      <td>{{ $times['segments'][$key]['from']['title'] }}{{__(' - ')}}{{$times['segments'][$key]['to']['title'] }}</td>
        <td>{{ $times['segments'][$key]['departure'] }}</td>
        <td>{{ $times['segments'][$key]['arrival'] }}</td>
    </tr>
    @endfor
READ ALSO
php elasticsearch For input string: 2188,24

php elasticsearch For input string: 2188,24

Добрый день помогите разобраться

120
Yii2 Вывод данных в GridView

Yii2 Вывод данных в GridView

У меня есть сессия которая содержит множество id из БД мне нужно на основе этих id вывести GrideView как это можно реализовать максимально лаконично?

121
Как записать в html файл код скопированного div?

Как записать в html файл код скопированного div?

Как записать код копии div в html файл? С помощью этого кода делаю копию div, но скопирован div выводится только на экран и не записывается в файл...

143