Обработка тела ответа guzzle 6 в laravel

Я делаю проект Laravel 5.2, который взаимодействует с локальным API. И у меня проблемы с обработкой тела ответа Guzzle.

Мой контроллер:

public function getClients(){
    $guzzle = new Client();
    try{

        $response = $guzzle->request('GET', 'http://localhost:3000/client')->getBody();           
        return view('home.clients', ['clients' => $response]);

    }catch(ClientException $e){
     //Handling the exception
    }
}

Мой вид лезвия:

<h2>Client list</h2>

{{ $clients }}//Just to inspect it

@forelse ($clients as $client)
    <h3>{{ $client->name }}</h3>
    <h3>{{ $client->email }}</h3>
    <h3>{{ $client->country }}</h3>
@empty
    <h3>No clients here</h3>
@endforelse

Нет ошибок в цикле или контроллере, также отображается объект Stream в браузере, но в цикле ничего не отображается.

Я уже прочитал документацию тела ответа Guzzle 6, но для новичка в этом, как я, это не так ясно.

Мысли?

Вывод браузера: вывод браузера


person Andres    schedule 03.02.2016    source источник


Ответы (1)


Вы должны декодировать этот JSON с помощью json_decode():

public function getClients(){
    $guzzle = new Client();
    try {

        $response = json_decode($guzzle->request('GET', 'http://localhost:3000/client')->getBody());           
        return view('home.clients', ['clients' => $response]);

    } catch(ClientException $e){
         //Handling the exception
    }
}

И вы можете удалить {{ $clients }}//Just to inspect it из своего представления.

Подробнее о JSON и Guzzle здесь: Guzzle 6: больше нет json() метод ответов

person rap-2-h    schedule 03.02.2016