【问题标题】:Render main form and embedded form(s) individually?单独渲染主表单和嵌入表单?
【发布时间】:2016-02-10 22:30:05
【问题描述】:

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>                

【问题讨论】:

    标签: symfony


    【解决方案1】:

    您只需要这样做:

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

    参见 Symfony 文档的 Rendering the Form 部分。只要正确定义了所有内容,Symfony 就会为您呈现表单的所有部分,包括嵌入的表单。

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

    此外,完全可以按照您所说的进行操作 - 只需尝试一下,您就会发现可以。

    【讨论】:

    • 这就是我现在的样子——我遇到的问题是希望在一个选项卡中呈现主表单,在另一个选项卡中呈现嵌入表单——因此需要对 HTML 进行一些调整——但我不想手动呈现每个字段,因为实体可能会更改或可见字段可能会更改。在这种不稳定的状态下,让 symfony 独立渲染表单会很好。不知道怎么做???
    • 你不能只在每个选项卡上呈现每个孩子的小部件吗? tab1 - {{ form_widget(form.child1) }}, tab2...等等。我想我不明白你在找什么。
    • 不确定...您给出的第一个示例渲染了整个表单...子表单。我需要在不同的选项卡中呈现太阳形式。所以我在第二个选项卡中单独呈现了这些字段。但它们仍然主要部分渲染。也许我明天上班时会发布我的模板......
    • 是的,看到您的模板会有所帮助,因为您绝对可以只呈现子表单而无需单独处理每个字段
    • 我有点困惑 - 看起来 stock 是一个完全独立的表单,而不是嵌入的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    相关资源
    最近更新 更多