Symfony表格集合作为表格
我很难理解symfony2的formbuilder如何处理集合 我有以下表单生成器Symfony表格集合作为表格,symfony,twig,symfony-forms,formbuilder,Symfony,Twig,Symfony Forms,Formbuilder,我很难理解symfony2的formbuilder如何处理集合 我有以下表单生成器 public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('name', 'text') ->add('datatypes', 'collection', array( 'type' => ne
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('datatypes', 'collection', array(
'type' => new DatatypeType(),
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'by_reference' => false,
'label' => false
));
}
使用默认的表单主题(form_div),这将创建以下构造
<div data-prototype="...">
<div>
<label>0</label>
<div>
<label>
<input>
<div>
<label>
<input>
0
首先,为什么要创建一个以“0”为内容的标签?我尝试了“label”=>false,但它仍然生成
其次,我希望将集合更改为如下,但原型仍将由form_div主题生成,因此即使我手动创建formparts,也无法使用
<table>
<tr>
<th>Title
<th>Title
<tr>
<td>
<input>
<td>
<input>
<tr>
<td>
<input>
<td>
<input>
标题
标题
如何获得所需的结果?集合中有子窗体的索引的0。 我实现集合的方式是逐字段打印表单。以这种方式,所有我不需要的标签都不会被渲染。 以下是一个例子:
<form class="form-horizontal" role="form" action="{{ path('path') }}" method="POST">
{{form_row(form.name)}}
<div class="collection-wrapper" data-prototype="{{ _self.datatype_prototype(form.datatypes.vars.prototype)|e }}">
{% for datatype in form.datatypes %}
{{ _self.datatype_prototype(datatype) }}
{% endfor %}
</div>
{{ form_widget(form._token) }}
</form>
不,由您决定如何显示表单,您可以自定义子表单的呈现方式,就像您对任何其他表单所做的一样(请参见)。请将此问题分为两个问题?请为
0
问题创建一个新问题。这将使其他用户在将来更容易找到答案。
{% macro datatype_prototype(childForm) %}
{{ form_widget(childForm) }}
{% endmacro %}