gpt4 book ai didi

PHP 分形转换器返回嵌入数据

转载 作者:可可西里 更新时间:2023-10-31 23:40:35 25 4
gpt4 key购买 nike

我正在尝试使用 Fractal 来转换 API 数据输出。这适用于单个项目和集合,但我似乎无法让它与嵌入式数据一起使用。不幸的是,我在 Fractal 上找不到很多“操作方法”。我关注了 Fractal 网站上的信息,但它不起作用。我使用 Laravel 4 作为我的框架。

这是我的 Transformer 类中的内容:

    protected $availableEmbeds = array(
'requirements'
);
public function transform(){ etc... }

public function embedRequirements(Regions $regions)
{
return $this->collection($regions->requirements, new RequirementsTransformer);
}

然后,在我的 Controller 中我有

    $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"
]

我期望“要求”成为“数据”键内关系键的一部分。

有人知道我做错了什么吗?

最佳答案

我刚刚遇到了这个问题。解决方案是

变形金刚类:

public function embedRequirements(Regions $regions)
{
$requirements = $regions->requirements()->get();
return $this->collection($requirements, new RequirementsTransformer);
}

get() 改变了一切

$regions->requirements()->get();

关于PHP 分形转换器返回嵌入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com