Php JMS Serialize@VirtualProperty不';行不通

Php JMS Serialize@VirtualProperty不';行不通,php,symfony,jmsserializerbundle,Php,Symfony,Jmsserializerbundle,我试图添加一个要序列化的方法,但JMS serialize不显示该字段 use JMS\Serializer\Annotation\Groups; use JMS\Serializer\Annotation\VirtualProperty; use JMS\Serializer\Annotation\SerializedName; class Ads { /** * @VirtualProperty * @Type("string") * @Seri

我试图添加一个要序列化的方法,但JMS serialize不显示该字段

use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\VirtualProperty;
use JMS\Serializer\Annotation\SerializedName;

class Ads
{   
    /**
     * @VirtualProperty
     * @Type("string")
     * @SerializedName("Foo")
     * @Groups({"manage"})
     */
    public function foo(){
        $foo = 'foo';
        return $foo;
    }
    ...
}
然后:

use JMS\Serializer\SerializationContext;
use JMS\Serializer\SerializerBuilder;

...

$context = new SerializationContext();
$context->setGroups(array('manage'));

$serializer = JMS\Serializer\SerializerBuilder::create()->build();
$jsonContent = $serializer->serialize($ad, 'json', $context);
我没有看到任何关于如何使用VirtualProperty的示例

语法正确吗?怎么了


谢谢。

我注意到了这个问题。在对象“$ad”之前创建了一个。是我的错。虚拟财产功能正常

出了什么问题?你是怎么修好的?尝试同样的yaml配置,也不起作用。。。谢谢。好的,我知道为什么了。Yaml的配置非常不同。您必须分离虚拟属性。看这里:这应该解释问题出在哪里,但我不明白那句话…:(如果有人(像我一样)不理解答案,这可能会帮助您。在我的情况下,问题是我没有在文件顶部添加
使用JMS\Serializer\Annotation\VirtualProperty;
使用JMS\Serializer\Annotation\SerializedName;