8

Noob,与 FOSRestBundle、JMSSerializerBundle 和模板有关的问题。

我正在尝试替换一些当前通过 twig 输出 json 的现有代码以使用 FOSRestBundle。这在从控制器传递的内容最初是在数组中的情况下是成功的,但是现在我试图将一个表单传递给 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

好的,这不是我在 Symfony 中期望的最干净的解决方案,但它似乎是这样工作的:

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

返回我的 myValue 实体:

{"28":"Default1","103":"test"}

于 2012-07-27T00:02:22.867 回答