表单中ArrayCollections上的标签是如何呈现的?

时间:2013-03-29 17:09:59

标签: symfony

我有一个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为空时才会呈现此内容?我该如何定制? (注意我已经为其他表单元素定制了我的标签呈现,我不希望它们与这些'集合标签'相同。)

1 个答案:

答案 0 :(得分:1)

我通常用这种方式解决了这个问题:

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

除非有人建议更好的方法。