2016-12-01 1 views
1

、APIへのリクエストを取得がつがつ食う:Laravel iは、オブジェクトを取得していますが、私は、オブジェクトのプロパティを呼び出すしようとすると、それは私にエラー与えて、私はこのAPI <a href="https://api.coinmarketcap.com/v1/ticker/bitcoin/" rel="nofollow noreferrer">https://api.coinmarketcap.com/v1/ticker/bitcoin/</a>にGETリクエストを送信しようとしていると、それがうまく働いて相互作用

Undefined property: GuzzleHttp\Psr7\Response::$id 

これは私のコードです:

$client = new GuzzleHttp\Client(['base_uri' => 'https://api.coinmarketcap.com/v1/ticker/']); 
    $response = $client->request('GET', 'bitcoin'); 
    return $response->id;; 

私は本当にこのオブジェクトと対話する方法がわからない...

答えて

2

がつがつ食うResponseオブジェクトは、そのように動作しません、そうでありません仮定するwレスポンスの内容を隠しておき、あなたのリクエストに対するプロパティをプロキシします。

以前は$response->json()に電話することができましたが、PSR-7のためにもうこれを行うことはできません。代わりに次のようなことをしてください:

$items = json_decode($response->getBody()); 
foreach ($items as $item) { 
    echo($item->id); 
} 

このエンドポイントはオブジェクトの配列を返します。したがって、複数のものがある場合は、最初のループまたはループを取得する必要があります。

注:あなたのようなコントローラーの一番上に名前空間を追加する場合:

use \GuzzleHttp\Client; 

あなたは、あなたのコード内でのみClientとしてそれを参照する必要があるように:

$client = new Client(...); 
+0

ましたそれ !ありがとう、私はできるだけ早くあなたの答えを選択します。(3分で) – Michael

+0

私はWeb.phpファイルからその要求をテストしましたが、私のコントローラから試してみるとエラーが出ます。クラス 'App \ Http \ Controllers \ GuzzleHttp \ Client 'が見つかりません。貼り付けられたコードをコピーして、GuzzleHttp \ Clientを使用していますが、あなたはそれを手伝ってもらえますか? – Michael

+0

名前空間をインポートします.... –

関連する問題

 関連する問題