symfonyフォームのレンダリングに小さな問題がありますので、まずはそのコンテキストについて説明します。Symfony Twigブロック生成の優先度
小枝では、ブロックはテンプレートに特定の順序で定義されています。
{# base.layout.html.twig #}
{% block firstBlock %}
{% endblock firstBlock %}
{% block secondBlock %}
{% endblock secondBlock %}
をそして私たちは、このテンプレートを拡張するときに我々は、この書き込みをすることができますので、問題はフォームである
{# child.layout.html.twig #}
{% embed "base.layout.html.twig" %}
{% block secondBlock %}
{{ form_widget(form.submit_button) }}
{% endblock secondBlock %}
{% block firstBlock %}
{{ form_widget(form.some_field) }}
{{ form_rest(form) }}
{% endblock firstBlock %}
を()は、Symfonyフォームをレンダリングする小枝で機能します。
私はモーダルウィンドウ の最後に送信ボタンを生成しようとしていますが、form_rest()はまだレンダリングされていないフォームのすべての部分をレンダリングするという問題があります。 form.submit_buttonをレンダリングするform_restを避けるために少し修正があり
、それはで既にレンダリングフィールドとしてform.submit_button設定します:
{% do form.submit_button .setRendered %}
しかし、このform.submit_buttonと
をレンダリングされることはありませんもちろん、このすべての最終的なことは、form_rest命令を削除しないことです。
私はform_rest命令の後にform.submit_buttonのレンダリングされた値を設定しないようにするか、テンプレートのブロック生成の順番を選択する方法を探します。このよう
:
{% block secondBlock with(1) %}
{{ form_widget(form.submit_button) }}
{% endblock secondBlock %}
{% block firstBlock with(2) %}
{{ form_widget(form.some_field) }}
{{ form_rest(form) }}
{% endblock firstBlock %}
はあなたの助けをありがとう!
あなたが追加した場合、 '{{form_rest(フォーム)}}' 'secondBlock'か? – sakhunzai
@sakhunzai私がこのようにすると私の見解は崩れてしまいます。問題は、テンプレート内の指定された位置にすべてのフォームフィールドをレンダリングし、同じテンプレートの下位に送信ボタンをレンダリングすることです。したがってbodyブロック(この例では 'firstBlock')と' footer'ブロック( 'secondBlock') – Tanaky
は、Alain Tiembloが以下に示唆しているものを確認します – sakhunzai