渲染除symfony 2.3中的提交之外的所有字段

时间:2013-09-03 14:37:25

标签: twig symfony-forms symfony-2.3

我正在覆盖SensioGeneratorBundle的Skeleton模板,如下所述:

http://symfony.com/doc/current/bundles/SensioGeneratorBundle/index.html#overriding-skeleton-templates

所以直到这里一切都很好。

在SensioGeneratorBundle的一个模板中,我有:

# app/resources/SensioGeneratorBundle/skeleton/crud/views/new.html.twig.twig
{% block body %}

{{ "{% block page_title 'Incluir " ~ entity ~ "'%}" }}

{{ "{% block body -%}" }}

    {{ '{{ form(form) }}' }}

    {% set hide_edit, hide_delete = true, true %}
    {% include 'crud/views/others/record_actions.html.twig.twig' %}
{{ "{% endblock %}" }}
{% endblock body %}

这样可行,但{{form(form)}}正在呈现提交按钮,我想在record_actions.html.twig.twig中呈现提交按钮。

所以我的问题是:如何渲染表单而不渲染提交按钮?记住我正在尝试在骨架模板中执行此操作,在这一刻我没有表格的fiels来迭代它。

谢谢!

1 个答案:

答案 0 :(得分:1)

此问题的解决方案如下:

# app/resources/SensioGeneratorBundle/skeleton/crud/views/new.html.twig
{% block body %}

{{ "{% block page_title 'Incluir " ~ entity ~ "'%}" }}

{{ "{% block body -%}" }}
{{ "    {{ form_start(child) }}" }}
{{ "    {% for child in form %}" }}
{{ "        {% if child.vars.name != 'submit' %}" }}
{{ "            {{ form_row(child) }}" }}
{{ "        {% endif %}" }}
{{ "    {% endfor %}" }}

{% set hide_edit, hide_delete = true, true %}
{% include 'crud/views/others/record_actions.html.twig.twig' %}

{{ "{% endblock %}" }}
{% endblock body %}

record_actions.html.twig.twig

# app/resources/SensioGeneratorBundle/skeleton/crud/views/record_actions.html.twig
{{ "        {{ form_row(form.submit) }}" }}
{{ "    {{ form_end(form) }}" }}
<ul class="record_actions">
    <li>
        <a href="{{ "{{ path('" ~ route_name_prefix ~ "') }}" }}">
            Back to the list
        </a>
    </li>
{% if ('edit' in actions) and (not hide_edit) %}
    <li>
        <a href="{{ "{{ path('" ~ route_name_prefix ~ "_edit', { 'id': entity.id }) }}" }}">
            Edit
        </a>
    </li>
{% endif %}
{% if ('delete' in actions) and (not hide_delete) %}
    <li>
        <form action="{{ "{{ path('" ~ route_name_prefix ~ "_delete', { 'id': entity.id }) }}" }}" method="post">
            <input type="hidden" name="_method" value="DELETE" />
            {{ '{{ form_widget(delete_form) }}' }}
            <button type="submit">Delete</button>
        </form>
    </li>
{% endif %}
</ul>