我的Symfony2 API使用FOSRestBundle和JMSSerializer,带有属性注释,但有很多次我不希望公开每个属性。我理解JMS有排除组,但我无法弄清楚如何将它们包含在我的Symfony控制器中。应该有一种方法可以在动态的基础上使用PHP,但是文档中似乎也没有这样做。
答案 0 :(得分:4)
如果您使用此example中的View
类,则可以使用setSerializationContext
方法设置序列化上下文
public function getUsersAction()
{
$data = // get data, in this case list of users.
$view = $this->view($data, 200)
->setSerializationContext(SerializationContext::create()->setGroups(array('list')))
;
return $this->handleView($view);
}
答案 1 :(得分:4)
自FOSRest 2.0版以来,你必须使用它:
$view = $this->view($response, $code);
$view->setContext($view->getContext()->setGroups(['get_client']));