很好地整合了symfony emmbedded的形式(没有填充)



与其他表单元素相比,我正在寻找一种方法来防止符号嵌入的表单使用填充显示。

我正在使用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) }}

最新更新