我正在修改使用Symfony 2.7和JMS Serializer的API。我有一个包含一些图像数据的实体。在我的实体定义中,相关字段的注释如下:
/**
* @var string
*
* @ORM\Column(name="images_data", type="text")
* @JMS\Groups({"default", "playlist", "digital_signage", "distributed_item"})
* @JMS\Type("array")
* @JMS\Accessor(getter="getImagesDataDecode")
* @JMS\SerializedName("imagesData")
*/
private $imagesData;
...我已将getImagesDataDecode()方法更改为:
public function getImagesDataDecode()
{
return ['testone'=>'a','testtwo'=>'b'];
}
...但在测试期间,我的API端点不会返回新的测试数组。我只能得出结论,在API响应期间没有使用getImagesDataDecode()方法。
如何找出用于返回API数据的方法?
我希望在返回相关数据之前让我的程序进行一些分析和过滤。没有插入那个逻辑的地方,看起来我暂时没有运气了。
答案 0 :(得分:1)
您缺少@JMS\AccessType
注释,告诉序列化程序使用您的Accessor方法。它默认为property
,因此它不使用任何方法,它通过反射使用属性本身。
https://jmsyst.com/libs/serializer/master/reference/annotations#accesstype