JMS Serialize @VirtualProperty不起作用

esc*_*hov 8 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")
     * @SerializedName("Foo")
     * @Groups({"manage"})
     */
    public function foo(){
        $foo = 'foo';
        return $foo;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

然后:

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);
Run Code Online (Sandbox Code Playgroud)

我还没有看到任何如何使用VirtualProperty的示例.

语法是否正确?怎么了?

谢谢.

esc*_*hov 0

我已经注意到这个问题了。在对象“$ad”之前创建。我的错。虚拟财产正常运行。

  • 这应该可以解释问题出在哪里,但我不明白那句话......:( (2认同)