2

我正在制作一个与本地 API 通信的 Laravel 5.2 项目。我在处理 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

循环或控制器上没有错误,也在浏览器中显示流对象,但在循环中不显示任何内容。

我已经阅读了 Guzzle 6 响应正文文档,但是对于像我这样的新手来说,这并不是很清楚。

想法?

浏览器输出: 浏览器输出

4

1 回答 1

2

您必须使用以下方法解码此 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: no more json() method for response

于 2016-02-03T00:39:20.637 回答