与其他表单元素相比,我正在寻找一种方法来防止符号嵌入的表单使用填充显示。
我正在使用symfony嵌入式表单功能来构建表单。
我有:
$builder
->add('subProduct', new ProductType())
->add('calories')
;
它运行良好,使用bootstrap 3水平表单布局,我将产品显示为子表单和额外的卡路里。
问题是在视图中,ProductType元素出现在子产品字段的中,而不是作为它们自己的,因此在它们的左侧有一个class="col-sm-2"。
对于一个子表单,它仍然可以,尽管没有用处,但是对于多个嵌入的子表单,我有和子表单一样多的"col-sm-2"。第三个子表单将被限制在屏幕的一小部分,因为之前显示了三个class="col-sm-2"无用的标签。
有人看到了改变表格显示方式的方法,从而以系统的方式删除子表格的标签吗?是通过覆盖分支引导模板还是从FormType中?
视图树更精确。我想去掉第二行、第三行和第四行
<div id="appbundle_foodanalytics_ingredient">
<div class="form-group">
<label class="col-sm-2 control-label required">Sub product</label>
<div class="col-sm-10">
<div class="form-group">
<label class="col-sm-2 control-label">Nom raccourci</label>
<div class="col-sm-10">
<input type="text">
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Calories</label>
<div class="col-sm-10">
<input type="number">
</div>
</div>
</div>
我通常手动渲染字段。这不是最好的解决方案,但它比编辑表单的主题更容易
{{ form_start(form) }}
{{ form_errors(form) }}
{{ form_row(form.subProduct.some_field_name) }}
{{ form_row(form.calories) }}
{{ form_row(form.submit, { 'label': 'Submit me' }) }}
{{ form_end(form) }}