API平台:嵌套对象中被忽略的规范化上下文
创始人
2024-09-08 01:30:45
0

在序列化实体时手动调用context参数来规范化嵌套对象。

示例代码:

// 定义Book实体
// Book实体中包含Author实体
// 通过@SerializedName注解设定Author的序列化名称
// 通过@ApiSubresource注解将Author标记为子资源
@ApiResource
class Book {
    // ...

    /**
     * @var Author|null
     *
     * @ORM\ManyToOne(targetEntity="Author")
     *
     * 注意:这里不能添加Context(null)注释,因为在嵌套对象中有序列化限制
     * 以便我们使用 context={"groups"={"book.read"}} 参数覆盖这默认的“book.write”组
     *
     * @ApiSubresource()
     * @SerializedName("written_by")
     * @Groups({"book.read", "author.read"})
     */
    private $author;

    // ...
}

// 定义Author实体
@ApiResource
class Author {
    // ...

    /**
     * @ORM\Column(type="string", length=255)
     *
     * @Groups({"book.read", "author.read"})
     */
    private $name;

    // ...
}

// 序列化实体时手动调用 normalization context
$json = $serializer->serialize($book, 'json', [
   'circular_reference_handler' => function ($object) {
       return $object->getId();
   },
   'groups' => ['book.read'],
   // 通过 context 参数设置规范化上下文
   'context' => [
       'groups' => ['author.read']
   ]
]);

相关内容

热门资讯

一分钟秒懂!如何下载朋朋政和软... 一分钟秒懂!如何下载朋朋政和软件辅助器,小闲川南辅助,发现开挂辅助教程(有人有挂);无需打开直接搜索...
重大消息!新西楚辅助器,悠闲卡... 重大消息!新西楚辅助器,悠闲卡五星辅助,盘点开挂辅助教程(有挂教程)1、下载安装好悠闲卡五星辅助,进...
技巧知识分享!丽水都来脚本辅助... 技巧知识分享!丽水都来脚本辅助,微信中至有辅助吗,推荐开挂辅助教程(真是有挂);无需打开直接搜索加(...
今日百科!韵味字牌有没有挂,拱... 今日百科!韵味字牌有没有挂,拱趴大菠萝辅助,传授开挂辅助教程(存在有挂);无需打开直接搜索加薇136...
推荐一款!同城游修改器,盛世辅... 您好:同城游修改器这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别...
大神推荐!老k游戏辅助,创思维... 大神推荐!老k游戏辅助,创思维激k辅助器视频,必看开挂辅助教程(真实有挂)1、下载安装好创思维激k辅...
安装程序教程!决战卡五星看牌器... 安装程序教程!决战卡五星看牌器,微信小程序财神十三张辅助,原来有开挂辅助教程(有挂细节);无需打开直...
玩家必知教程!广西老友玩插件,... 玩家必知教程!广西老友玩插件,八闽掌上辅助软件,盘点开挂辅助教程(确实有挂)1、下载安装好八闽掌上辅...
交流学习经验!广西八一字牌有挂... 交流学习经验!广西八一字牌有挂吗,战神辅助器下载,通报开挂辅助教程(有挂细节)1、下载安装好广西八一...
热点推荐!小唐家乐园山西辅助软... 您好:小唐家乐园山西辅助软件这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用...