我在使用Symfony2中的表单构建器时遇到了问题。 确切地说,我需要输入字段是html数组,但我无法使用createFormBuilder-> add创建它。 这是我试过的:
$attributesForm = $this->createFormBuilder()
->add('attribute[0]', 'text') ...
等等,但我得到以下异常:
名称“attribute [0]”包含非法字符。名称应以字母开头,>数字或下划线,仅包含字母,数字,数字,下划线(“_”),连字符>(“ - ”)和冒号(“:”)。
有没有好的解决方案,或者我必须手动创建字段?
提前致谢!
编辑:进一步澄清...... 我希望生成这样的东西:
<div id="msoft_adminbundle_offertype">
<div>Name <input type="text" name="name"></div>
<div>...</div>
<div>Attribute 0 <input type="text" name="attribute[0]"></div>
<div>Attribute 1 <input type="text" name="attribute[1]"></div>
<div>Attribute 3 <input type="text" name="attribute[3]"></div>
<ul>
</ul>
<p>
<button type="submit">Edit</button>
</p>
帮助?
答案 0 :(得分:15)
如前面的答案所述,使用集合类型或嵌套表单,其中每个字段对应于数组的一个条目。如果您不能/不想这样做,您可以执行以下操作:
->add('attribute_0', 'text', array(
'property_path' => 'attribute[0]',
))
答案 1 :(得分:6)
答案 2 :(得分:1)
您也可以覆盖TWIG中的字段。示例:
{{ form_row(form[field_name],{ 'full_name': 'attribute[' ~ step ~ ']' })}}
其中step是您的索引。