Edited at

APIを経由してオブジェクトのプロパティを取得するときの注意

More than 1 year has passed since last update.

DBの参照用APIをLaravelでつくっていたときに詰まったハナシ。


api.php

Route::get('/product', function(){

$product = ProductEloquent::find(3);
return $product;
});

こんな感じで、Eloquentで取得したデータをオブジェクトで返すようにして、

下のようなテストを実行。

class ProductTest extends TestCase

{
/**
* A basic test example.
* @group api
* @return void
*/
public function testBasicTest()
{
$res = $this->get("api/product");

dd($res->category);
}
}


エラー

ErrorException: Undefined property: Illuminate\Http\Response::$category



プロパティがないとのこと。

dd($res) で中を見てみると、確かにEloquentで取得したときのオブジェクトに比べて何かフクザツな構造になっていた。


解決法

これで解決。

    public function testBasicTest()

{
$res = $this->get("api/product");

dd($res->baseResponse->getOriginalContent()->category);
}