8

Noob、FOSRestBundle、JMSSerializerBundle、およびテンプレートに関する質問です。

FOSRestBundle を使用するために、現在 twig を介して json を出力している既存のコードを置き換えようとしています。これは、コントローラーから渡されるコンテンツが元々配列であった場合に成功しましたが、フォームを FOSRestBundle に渡そうとすると、値が返されません。

以下のコードはシナリオを複製します

/**
 *  my sample get action
 * @View(templateVar="form")   
 */
public function getAction($id)
{
    ...         
     $form = $this->createFormBuilder(array('myValue' => 'SOMEVALUE'))
        ->add('myValue', 'hidden')
        ->getForm();

    $view = FOSView::create($form);
    $view->setFormat('json');

    return $this->get('fos_rest.view_handler')->handle($view);
}

戻り値

{"children":{"_token":[],"myValue":[]}}

ここで期待していたのは次のようなものでした。

{"children":{"_token": "mylongtoken","myValue": "SOMEVALUE"}}

LiipHelloBundle の例に基づいてコードを作成していますが、間違っていない限り、これは提供されている例と一致しますか? 私が間違っているアイデアはありますか?

4

1 に答える 1

2

OK、Symfony 内で私が期待する最もクリーンなソリューションではありませんが、うまくいくようです:

$form->createView()->get('form')->get('form')->getChild('myValue')->get('choices')

myValue エンティティを返します。

{"28":"Default1","103":"テスト"}

于 2012-07-27T00:02:22.867 に答える