Symfony2不呈现数据原型的集合形式

时间:2012-02-26 10:37:47

标签: symfony twig

好吧,这是一个相当尴尬的问题。我在Symfony中使用collection表单类型,并在使用

配置它之后
'prototype' => true,
'allow_add' => true

当我在Twig模板中调用其中一个时,我希望它能打印原型:

form_rest(form)
form_widget(form.subform.get('prototype'))

问题在于,如果集合包含至少一个元素,Symfony会打印原型

这是一个我不知道的错误,或者我错过了什么?

任何想法都将不胜感激! 谢谢!

3 个答案:

答案 0 :(得分:2)

我已将Symfony更新为最新的稳定版,原型仍然表现得很奇怪:

  • 如果没有项目,则会呈现<div data-prototype="...."></div>
  • 否则它会将原型渲染为纯HTML(而不是上面DIV的属性)

由于没有现成的解决方案,我被迫在我的JS中执行IF - ELSE。也就是说,JS首先检查data-prototype元素,如果不存在则退回到另一个元素。

只要我有空闲时间,我就会研究这种行为,如果结果是不受欢迎的(我怀疑它是这样),会将其报告为错误...

答案 1 :(得分:0)

我不知道这是不是一个错误,但我认为如果它不包含至少一个元素,则为该集合打印一个表单是没有意义的。如果您正在创建集合,那么您应该创建一个虚拟元素并将其添加到您的集合中。这不是自动完成的。

答案 2 :(得分:0)

如果表单数据为空,则可以创建表单的克隆并使用虚拟对象填充它。使用此克隆生成原型。