私はSymfony2プロジェクトでFOSrestBundleを使用しています。 $translation
は自分の束の目的であるJMSシリアライザでパーソナルモデルではないオブジェクトをシリアル化するにはどうすればいいですか?
$view = $this
->view(array(
'form' => $this->formHandler->getForm()->createView(),
'translation' => $translation,
), Response::HTTP_OK)
->setTemplate('MyBundle:Translation.html.twig');
:私はこのように作成されたビューを持っています。私が$this->handleView($view)
と呼ぶとき、FosRestBundleはJMSシリアライザを使って私のビュー(フォームと翻訳オブジェクト)のデータをシリアル化しますが、私の翻訳オブジェクトは多くの属性を私のケースでは役に立たず、レスポンスは何のためにも大きすぎます私はやろうとしている。
有用な属性のみを取得するためにグループ注釈を使用することにしました。
$context = SerializationContext::create()->setGroups(array('view'));
$view->setSerializationContext($context);
そして、私の翻訳モデルで、私はall
にExclusionPolicyを設定することができますし、view
グループに便利な属性を追加します。ここでは
はview
グループとコンテキストです。これは、作業が、この構成(直列化コンテキストでグループview
)(Symfony\Component\Form\FormView
である)私のフォームオブジェクトと私は私の翻訳モデルのためのグループを使用しますが、まだ私のFormViewコントロールオブジェクトをシリアル化するにはどうすればよい{}
にシリアル化されますか?
しかし、ベンダーからFormViewクラスをオーバーライドする必要があります。これはベストプラクティスのようには聞こえません – iBadGamer