由于使用了parent()和块结构,在调用form_row()之前,Twig输出Symfony表单元素

问题描述 投票:0回答:1

我有两个文件 - indexlayout。我想在index中输出一个表单。

由于这个网站的模板结构的方式,我被迫将表单包裹在布局的外部,如下所示。

这是模板文件:

{# layout.html.twig: #}
{% block main %}
    <!-- 
        there is actually a lot more going on here 
        and simply moving it into index would lead 
        to a lot of duplication in the html structure
    -->
    <main> 
        {% block mainContent %}
        {% endblock %}
    </main>
{% endblock %}

这是实现模板的文件:

{# index.html.twig: #}
{% extends 'layout.html.twig' %}

{% block main %}
    {{ form(form) }}
        {{ parent() }}  
    {{ form_end(form) }}
{% endblock %}

{% block mainContent %}
    {{ form_row(form.my_field) }}
{% endblock %}

index覆盖main块,添加表单然后调用主要父内容到表单中。父内容包含一个名为mainContent的块,然后我实际添加了表单元素。

唯一的问题是Symfony / Twig有其他的想法并且实际上在blockMain之前输出我的所有行,所以我在那里调用form_row只是被忽略,因为相应的元素已经被回应。

我怎么能阻止它并在blockMain中输出我的表单但是将它包装在block main中?

道歉应该是重复 - 我正在努力为此找到合适的关键字。虽然我可以看到正在发生的事情(有点),但我实际上并不知道所谓的行为是什么。

symfony twig symfony-forms
1个回答
0
投票

事实证明,这比我想象的要简单得多 - 我只是混淆了form()form_start()

一旦我添加form_start()代替form(),一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.