如何检索表单集合';是否从控制器(Symfony2)中删除原型属性?

如何检索表单集合';是否从控制器(Symfony2)中删除原型属性?,symfony,symfony-2.2,Symfony,Symfony 2.2,我在控制器中获取表单集合的prototype属性以包含在JSON响应中时遇到问题,我得到的最大值(即没有抛出错误)是以下内容,但是返回值为空 $form=$this->createForm(新的MyType()); $prototype=$form->get('myCollection')->getConfig()->getAttribute('prototype'); 我还尝试创建表单的视图,并从中提取属性,但是这里没有定义prototype键 $form=$this->createForm

我在控制器中获取表单集合的prototype属性以包含在JSON响应中时遇到问题,我得到的最大值(即没有抛出错误)是以下内容,但是返回值为空

$form=$this->createForm(新的MyType());
$prototype=$form->get('myCollection')->getConfig()->getAttribute('prototype');
我还尝试创建表单的视图,并从中提取属性,但是这里没有定义
prototype

$form=$this->createForm(新的MyType());
$view=$form->createView();
$prototype=$view->children['myCollection']->vars['attr']['prototype'];
有人知道我哪里出错了吗


(Symfony 2.2.4)

$prototype=$view->children['myCollection']->vars['prototype']

通过只渲染表单集合字段的prototype属性,我似乎可以得到我想要的东西,这感觉很漫长,但它是有效的

// Controller method
$form      = $this->createForm(new MyType());
$view      = $form->createView()->children['myCollection'];
$prototype = $this->renderView('MyBundle:Foo:prototype.html.twig', array('form' => $view));

{{form_小部件(form.vars.prototype)}

添加集合时,您是否具有allow_add=true?是的,我应该提到:表单实际上是在一个页面上使用的,并且工作正常。我有第二个表单,用于通过AJAX向第一个表单集合中的select添加更多选项。我想更新集合的原型,以便在添加其他项目时可以使用新添加的选项。好的。我没有试过。但是,不要试图更改控制器中的原型,而是考虑将必要的信息传递给表单类型,并使其添加更改。它也有自己的
vars
属性,但其中没有生成的HTML。我想知道原型字符串是否是在视图渲染器中的某个地方生成的,我就是找不到它…正确,然后需要使用
FormView
块,并使用实现
Symfony\Component\Form\formrenderinterface
<!-- Template (MyBundle:Foo:prototype.html.twig) -->
{{ form_widget(form.vars.prototype) }}