2014-12-15 5 views
2

У меня есть Entity с несколькими дочерними объектами разных классов.JMS Сериализатор, добавляющий изменения подписчика/слушателя

Используя этот код все работает правильно

$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 верен, но мои собственные сущности теперь пропускают все поля, кроме идентификатора.

Как использовать абонент/слушатель и обеспечить, чтобы мои объекты не менялись?

ответ

1

Нашли это, не очевидное или задокументированное!

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

Этот код выглядит точно так же, как то, что находится в вашем первоначальном посте, должно ли оно отличаться? –

+0

Иногда, иногда, копия и вставка становятся лучше меня. Обновлено сейчас. :-) –

Смежные вопросы