从分形转换的单个项目中删除“数据”键
Posted
技术标签:
【中文标题】从分形转换的单个项目中删除“数据”键【英文标题】:Remove `data` key from fractal transformed single item 【发布时间】:2016-06-05 14:36:16 【问题描述】:我正在使用带有流明框架的分形来构建 API。它很好用,但是当我返回任何特定项目时,它会在 data
键中返回结果。
data : /** All data **/
我了解在集合中使用 data
键。但我觉得没有必要在单个结果中使用 data
键。 (如果是错误的 REST 约定,请纠正我)
那么如何从单个结果中删除 data
键?
【问题讨论】:
只是让我知道,为什么你需要使用分形,Lumen 通常包含一个开箱即用的序列化程序,不是吗?关于您的问题,您应该阅读此页面的文档:fractal.thephpleague.com/serializers 它谈到了“数据”关键字的使用... 我主要使用分形来包含其他关系数据。例如,如果我正在响应book
数据,我可能还希望将 author
数据包含在其中。我喜欢分形的做法。我对流明并不熟悉,所以我不确定流明是否也可以。无论如何 - 我想你回答了我在找什么(还没试过)。你能把它写成答案吗?
是的,当然我可以把它作为答案,即使它显然不是最好的^^你在使用 Eloquent 来检索你的模型吗?
【参考方案1】:
将此代码放入您的Bootstrap/app.php
可以帮助您避免data
。您也可以将其作为服务提供商。
$app->bind('League\Fractal\Manager', function ($app)
$fractal = new \League\Fractal\Manager;
$serializer = new \League\Fractal\Serializer\ArraySerializer();
$fractal->setSerializer($serializer);
return $fractal;
);
$app->bind('Dingo\Api\Transformer\Adapter\Fractal', function ($app)
$fractal = $app->make('\League\Fractal\Manager');
return new \Dingo\Api\Transformer\Adapter\Fractal($fractal);
);
【讨论】:
以上是关于从分形转换的单个项目中删除“数据”键的主要内容,如果未能解决你的问题,请参考以下文章