【发布时间】:2017-05-12 21:21:07
【问题描述】:
我在 Symfony2 项目中使用 FOSrestBundle。我有一个这样创建的视图:
$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)被序列化为{}
如何为我的 Translation 模型使用组,但仍然序列化我的 FormView 对象?
【问题讨论】:
标签: symfony serialization jmsserializerbundle jms-serializer