为一个名为Button的实体嵌入一组表单:原型包含了一个错误的表单



我想创建一个包含子表单集合的表单。

内部表单的实体类型称为Button。对于本例,让我们假设它只有一个属性,x,它是一个整数。

我为内部表单定义了ButtonType类:

class ButtonType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('x', 'integer');
    }
}

现在我试着按照如何嵌入表单集合中的说明去做。特别是,它包含以下示例代码:

<ul class="tags" data-prototype="{{ form_widget(form.tags.vars.prototype)|e }}">
    ...
</ul>

在他们的例子中,内部实体被称为"tags",所以我将"tags"适当地替换为"buttons"。

然后我添加了JavaScript,添加了一个新的子表单来响应链接点击。

问题是 data-prototype值看起来像这样(为了更好的可读性,我在这里没有转义):

<button type="button" id="storypunkt_buttons___name__" name="storypunkt[buttons][__name__]">__name__label__</button>

(" Storypunkt "是包含集合的外部实体的名称)

这没有意义。为什么它渲染一个按钮,而且只渲染一个按钮?它应该为x属性呈现一个整数文本字段。我该如何解决这个问题?

只是为了实验,我把它重命名为其他东西(没有改变任何其他东西),这使它工作。

所以答案既简单又愚蠢:你不能把你的实体叫做Button

相关内容

最新更新