添加订阅者/侦听器的JMS Serializer更改输出

时间:2014-12-15 00:00:45

标签: symfony entity listener jmsserializerbundle

我有一个具有不同类别的多个子实体的实体。

使用此代码,一切正常

$serializer = SerializerBuilder::create()->build();

但是只要我添加这个

$serializer = SerializerBuilder::create()
    ->configureListeners(function(EventDispatcher $dispatcher) {
        $dispatcher->addSubscriber(new CustomSubscriber());
    })
->build();

某些子对象的输出从正确的属性更改为

"attribute": {
    "id": 1,
    "__initializer__": {},
    "__cloner__": {},
    "__is_initialized__": false,
    "lazy_properties_defaults": []
}

它不是全部,只是其中的一部分。 FOSUser对象是正确的,但我自己的实体现在缺少除ID之外的所有字段。

如何使用订阅者/侦听者并确保我的实体不会更改?

1 个答案:

答案 0 :(得分:1)

找到它,不明显或记录在案!

$serializer = SerializerBuilder::create()
    ->configureListeners(function(EventDispatcher $dispatcher) {
        $dispatcher->addSubscriber(new CustomSubscriber());
    })
->addDefaultListeners()
->build();