Open1
Laravelでweb.phpを使い、dd()でjson形式を見る方法
Laravelのコントローラーで受け取った。Guzzle HTTPクライアントのレスポンスを dd() でダンプする場合、レスポンスボディはストリームとして返されるため、 それを文字列や配列に変換する必要があります。
これは getBody()->getContents() メソッドを使って行いますが、ストリームは一度読み出すとその位置が最後に移動するので、 再度読み出す前に rewind() を使って位置をリセットする必要があります。
use GuzzleHttp\Client;
$client = new Client(); //Guzzle HTTPクライアント
$ItemUrl = 'http://localhost:8000/api/item';
$response = $client->request('POST', $ItemUrl, [
'headers' => [
'Authorization' => 'Bearer ' . $accessToken,
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'user_id' => $userId,
],
]);
// ストリームをリセット
$response->getBody()->rewind();
// ストリームの内容を取得してJSONとしてデコード
$decodedData = json_decode($response->getBody()->getContents(), true);
// デコードされたデータをダンプ
dd($decodedData);
上記のようにストリームをリセットして、ストリームの内容を取得してJSONとしてデコードすれば、
dd()の中身がjson形式のデータが表示されます。