我正在尝试创建一个包含子表单集合的表单。
inner 表单的实体类型称为Button
。对于这个例子,让我们假装它只有一个属性x
,这是一个整数。
所以我为内部表单定义了这个ButtonType
类:
class ButtonType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('x', 'integer');
}
}
现在我尝试按照How to Embed a Collection of Forms中的说明操作。特别是,它包含以下示例代码:
<ul class="tags" data-prototype="{{ form_widget(form.tags.vars.prototype)|e }}">
...
</ul>
在他们的示例中,内部实体称为“标签”,因此我将“标签”替换为“按钮”。
然后我添加了一个JavaScript,它添加了一个新的子表单以响应链接点击。
问题 data-prototype
值看起来像这样(为了更好的可读性,我在这里没有使用过):
<button type="button" id="storypunkt_buttons___name__" name="storypunkt[buttons][__name__]">__name__label__</button>
(“Storypunkt”是包含该集合的外部实体的名称。)
这没有任何意义。为什么它会渲染一个按钮,只有一个按钮?它肯定会为x
属性呈现整数文本字段。我该如何解决这个问题?
答案 0 :(得分:1)
为了实验,我将其重命名为其他内容(不更改任何其他内容)并使其正常工作。
所以答案就像愚蠢一样简单:你不能打电话给你的实体Button
。