0
所以我有这样的(简单的代码片段)的响应类:JMS序列化程序忽略带访问器注释的排除策略?
/**
* @Serializer\ExclusionPolicy("all")
*/
class MyResponse
{
/**
* @Serializer\Expose
* @Serializer\Groups({"myGroup"})
* @Serializer\Accessor("getMyName")
*/
public $name;
public function getMyName()
{
return 'Donald';
}
}
排除政策不包括从被序列化,除非他们明确地@Serializer\Expose
暴露和数据组匹配的所有领域。
这适用于所有领域,除了那些与@Serializer\Accessor
注释。无论组策略如何,这些字段总是包含在内。我无法在文档或任何其他报告中找到任何暗示@Serializer\Accessor
注释覆盖组策略的任何内容,也无法手动检查访问器函数中的数据组。
有没有办法做到这一点,或者我将不得不在响应构造函数中内联我所有的存取函数?我试图避免有一个巨大的100L +构造函数,但它击败了使用accessor注释点,如果我不能排除某些领域...
您是否尝试过使用'$ serializer->连载(新MyResponse(),“JSON”,\ JMS \ Serializer \ SerializationContext :: create() - > setGroups(array('Default')));'? – tftd