单独渲染主窗体和嵌入窗体?

时间:2016-02-09 21:31:43

标签: symfony

http://symfony.com/doc/current/cookbook/form/form_collections.html

Symfony2 embedded forms rendering in a twig template

我知道如何在单个字段的基础上渲染这两个表单 - 但我想以更方便的方式呈现主表单和子表单:

{{ form_start(form) }}
{{ form_widget(form.base) }}
{{ form_widget(form.child1) }}
{{ form_widget(form.child2) }}
{{ form_end(form) }}

可能?或者,如果我需要这种类型的控制,我是否必须单独渲染每个字段?

编辑|这是我有什么

<div class="box box-primary">
                    {{ form_start(form) }}

                    <div class="nav-tabs-custom">
                        <ul class="nav nav-tabs">
                          <li class="active"><a href="#activity" data-toggle="tab">Master</a></li>
                          <li><a href="#timeline" data-toggle="tab">Stock</a></li>
                        </ul>
                        <div class="tab-content">
                          <div class="active tab-pane" id="activity">
                            {{ form_row(form.partNumber) }}
                            {{ form_row(form.partDescription) }}
                          </div>

                          <div class="tab-pane" id="timeline">
                            {% for stock in form.inventoryStock %}
                                <div>{{ form_widget(stock.onHandQuantity) }}</div>
                                <div>{{ form_widget(stock.batchNumber) }}</div>
                                <div>{{ form_widget(stock.serialNumber) }}</div>
                            {% endfor %}
                          </div>

                        </div>
                    </div>                    

                    {{ form_end(form) }}
                </div>                

1 个答案:

答案 0 :(得分:0)

你应该只需要这样做:

{{ form_start(form) }}
    {{ form_widget(form) }}
{{ form_end(form) }}

请参阅Symfony文档的Rendering the Form部分。只要一切都被正确定义,Symfony将为您呈现表单的所有部分,包括嵌入的表单。

您经常需要使用这些功能以获得额外的粒度,但这并不是必需的。

此外,完全可以做你所说的 - 只是试一试,你就会发现你可以。