加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 22:52:27 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用Fractal来转换API数据输出.这适用于单个项目和集合,但我似乎无法使用嵌入式数据.不幸的是,我在Fractal上找不到很多“怎么做”.我按照Fractal网站上的信息,但它不起作用.我正在使用Laravel 4作为我的框架. 这是我在Transformer课上的内容: pro
我正在尝试使用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);
}

在我的控制器里面,我有

$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->的要求() – >获得();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读