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);
}