2

多くの を持つCustomerオブジェクトがありますEmails

顧客用のフォームを作成していて、顧客のメールをコレクションとして追加しました。私のテンプレートでは、メールの部分を次のようにレンダリングします。

<h4>Emails</h4>
{% for email in form.emails %}
  <li>
    {{ form_row(email.addr) }}
    {{ form_row(email.isPrimary) }}
  </li>
{% endfor %}
...
{{ form_rest(form) }}

顧客が電子メールを持っていない場合を除いて、これは正常に機能します。次に、form_rest()テンプレートの下部に「メール」というラベルを表示します。

form.emailsが空の場合にのみレンダリングされるのはなぜですか? どうすればカスタマイズできますか? (注: 他のフォーム要素のラベル レンダリングを既にカスタマイズしており、これらの「コレクション ラベル」と同じにしたくないことに注意してください。)

4

1 に答える 1

1

私は通常、この問題を次のように解決しました。

{% for email in form.emails %}
    {# ... #}
{% else %}
    {{ form_widget(form.emails) }}
{% endfor %}

誰かがこれを行うためのより良い方法を提案しない限り。

于 2013-03-29T20:17:25.870 に答える