gpt4 book ai didi

php - 用于嵌套项和集合的具有不同序列化程序的分形转换器

转载 作者:行者123 更新时间:2023-12-04 16:09:54 26 4
gpt4 key购买 nike

为了更改 Laravel 5.4 RESTful API 发送的 JSON 输出,我使用了 thephpleague 的 Fractal 包。因为将来会添加分页,所以集合使用默认的 DataArraySerializer 并且单个项目使用 ArraySerializer 很重要。还需要为更深的嵌套对象赋予相同的结构。我怎样才能实现这一目标(全局或非全局)?

class TreeTransformer extends TransformerAbstract {
protected $defaultIncludes = [
'type',
'branches'
];

public function transform(Tree $tree) {
return [
'id' => (int)$tree->id,
'name' => (string)$tree->name
];
}

public function includeType(Tree $tree) {
return $this->item($tree->type, new TypeTransformer()); // Should be ArraySerializer
}

public function includeBranches(Tree $tree) {
return $this->collection($tree->branches, new BranchTransformer()); // Should stay DataArraySerializer
}
}

最佳答案

不幸的是,我认为你正在尝试做的事情还不可能。更多信息:https://github.com/thephpleague/fractal/issues/315

您仍然可以像这样更改整个输出的序列化程序:https://github.com/spatie/fractalistic#using-a-serializer .但这不是您想要实现的。

关于php - 用于嵌套项和集合的具有不同序列化程序的分形转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44324296/

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