我使用laravel-fractal来转换我的数据,这是一个回复
如何删除数据; 我做了一个搜索,我意识到我需要使用一个Serializer; 但我只想删除所有包含(关系)的数据
{
"data": [
{
"id": 1,
"name": "test name",
"status": null,
"tags": [
"first",
"second"
],
"created_at": "1396/9/3",
"contacts": {
"data": [
{
"value": "test@test.com",
"type": "email",
"icon": "fa fa-email"
}
]
}
},
{
"id": 2,
"name": "name test 2",
"status": null,
"tags": [],
"created_at": "1396/9/3",
"contact": {
"data": []
}
}
]
答案 0 :(得分:1)
我在GitHub上找到了答案。从thephpleague/fractal on GitHub复制了以下答案:
您可以为此编写自己的序列化器。
SELECT s.Sku, s.SkuId, sc.Qty
FROM SkuCombo sc
INNER JOIN Skus s ON sc.SkuComboId = s.SkuId
向经理注册您的序列化器
class YourDataSerializer extends ArraySerializer
{
public function collection($resourceKey, array $data)
{
if ($resourceKey) {
return [$resourceKey => $data];
}
return $data;
}
public function item($resourceKey, array $data)
{
if ($resourceKey) {
return [$resourceKey => $data];
}
return $data;
}
}
,当您要获取数据或其他任何内容时,可以将resourceKey作为第三个参数传递给Item或Collection。
$manager = new Manager();
$manager->setSerializer(new YourDataSerializer());
答案 1 :(得分:0)
使用数组序列化器:
Fractal::create()
->item($item, new MyTransformer())
->serializeWith(new ArraySerializer())