我尝试使用Fractal转换API数据输出。这适用于单个项目和集合,但我似乎无法使用嵌入式数据。不幸的是,我找不到很多"如何""在分形。我按照Fractal网站上的信息,但它不会工作。我使用Laravel 4作为我的框架。
这就是我在Transformer课上的内容:
protected $availableEmbeds = array(
'requirements'
);
public function transform(){ etc... }
public function embedRequirements(Regions $regions)
{
return $this->collection($regions->requirements, new RequirementsTransformer);
}
然后,我的控制器里面有
$regions = Regions::with($this->eagerLoad)->get();
这给了我想要的结果。
但是当我将这些数据传递给变压器时,它并没有提供所需的结果:
return $this->respondWithCollection($regions, new RegionTransformer());
RespondWithCollection方法
protected function respondWithCollection($collection, $callback)
{
$resource = new Collection($collection, $callback);
$fractalManager = new Manager();
$rootScope = $fractalManager->createData($resource);
//$rootScope = $this->fractal->createData($resource);
return $this->respondWithArray($rootScope->toArray());
}
这是输出:
{
"data": [
{
"id": 36218,
"name": "Netherlands",
"active": true,
"created": "2014-02-28 11:17:02"
}
],
"embeds": [
"requirements"
]
}
我期待的地方"要求"成为"数据"中的关系键的一部分键。
有谁知道我做错了什么?
答案 0 :(得分:1)
我还遇到了这个问题。解决方案是
变形金刚班:
public function embedRequirements(Regions $regions)
{
$requirements = $regions->requirements()->get();
return $this->collection($requirements, new RequirementsTransformer);
}
get()完全不同
$ regions->要求()的 - >得到()强>