带有额外数据的 Symfony 4 表单渲染

Symfony 4 Form rendering with extra data

我有一个位置 object 的 Symfony 表单,其中嵌入了活动列表。每个 activity 都有一个标题、状态菜单和一个注释文本字段。

我不希望用户编辑标题,但我仍想将其显示给用户。

如何从 formbuilder 的表单模板中访问此变量?

您可以通过 {{ form.vars.data.fieldName }} 示例访问表单数据:

{{ form_start(form) }}

    {{ form_row(form.name) }}<br> {# assume that the Location entity has a name property #}
    {{ form.vars.data.name}}<br> {# accessing the form data #}

    <button class="btn">{{ button_label|default('Save') }}</button>

{{ form_end(form) }}

或使用子表单:

{{ form_start(form) }}

    {{ form_row(form.name) }} {# assume that the Location entity has a name property #}

            {# iterate over each existing activity and render its fields #}
            {% for activity in form.activities %}
                {{ activity.vars.data.title }}<br> {# accessing the form data #}
                {{ form_row(activity.notes) }}<br><br> {# render a form field #}
            {% endfor %}

    <button class="btn">{{ button_label|default('Save') }}</button>

{{ form_end(form) }}

使用{{ dump(form) }}将表单内容转储到屏幕上