我在我的Symfony2項目中使用FOSrestBundle。我有這樣創造了一個觀點:如何使用JMS序列化器序列化不是個人模型的對象?
$view = $this
->view(array(
'form' => $this->formHandler->getForm()->createView(),
'translation' => $translation,
), Response::HTTP_OK)
->setTemplate('MyBundle:Translation.html.twig');
哪裏$translation
是我自己包的對象。問題是當我打電話給$this->handleView($view)
時,FosRestBundle使用JMS序列化程序來序列化我的視圖(表單和翻譯對象)的數據,但是我的翻譯對象有很多屬性在我的情況下是無用的,並且響應對於我正在努力。
我決定使用組註釋來只檢索有用的屬性。
這裏是與view
組上下文:
$context = SerializationContext::create()->setGroups(array('view'));
$view->setSerializationContext($context);
而在我的翻譯模型,我可以在ExclusionPolicy設置爲all
,並添加有用的屬性到view
組。這是工作,但此配置(在序列化背景下組view
)我的表單對象(這是一個Symfony\Component\Form\FormView
)序列化到{}
如何使用一組給我翻譯模型,但仍然連載我的FormView對象?
但我需要重寫供應商的FormView類..這聽起來不像是一個最佳實踐 – iBadGamer