0
從Symfony2 Google Group發佈的表單錯誤(對於整個表單,而不是單個字段),因爲對我的問題沒有任何迴應。Symfony2 - 不顯示
我有以下形式:
<form id="contact-form" action="{{ path('_contact') }}" method="post" {{ form_enctype(form) }}>
<fieldset>
<legend>Send us a message</legend>
{{ form_errors(form) }}
<div>
<p class="label">{{ form_label(form.name) }}</p>
{{ form_widget(form.name, { 'attr' : { 'class' : 'input' } }) }}
</div>
<div>
<p class="label">{{ form_label(form.email) }}</p>
{{ form_widget(form.email, { 'attr' : { 'class' : 'input' } }) }}
</div>
<div>
<p class="label">{{ form_label(form.subject) }}</p>
{{ form_widget(form.subject, { 'attr' : { 'class' : 'input' } }) }}
</div>
<div>
<p class="label">{{ form_label(form.message) }}</p>
{{ form_widget(form.message, { 'attr' : { 'class' : 'input', 'rows' : '8', 'placeholder' : 'Type your message here' } }) }}
</div>
<div class="hidden">
<p class="label">{{ form_label(form.honeypot) }}</p>
{{ form_widget(form.honeypot) }}
</div>
{{ form_rest(form) }}
</fieldset>
我不喜歡有現場錯誤直接顯示附近農田。我想只列出表單上方的所有錯誤,這就是爲什麼每個字段都沒有錯誤。我使用的是稍微修改form_errors主題:
{# src/MajorProductions/SewingDiva/SiteBundle/Resources/views/errors.html.twig #}
{% block form_errors %}
{% spaceless %}
{% if errors|length > 0 %}
<div class="errors">
<ul>
{% for error in errors %}
<li>{{
error.messagePluralization is null
? error.messageTemplate|trans(error.messageParameters, 'validators')
: error.messageTemplate|transchoice(error.messagePluralization, error.messageParameters, 'validators')
}}</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endspaceless %}
{% endblock form_errors %}
我只是把默認設置在<div>
,所以我可以風格稍微輕鬆一點兒。
我的問題是,根本沒有顯示錶單錯誤列表。如在HTML中沒有空的<div>
,沒有任何東西。如果我輸入字段級錯誤的代碼,例如say {{form_errors(form.email)}},它會顯示。
我想我可以用類似雜牌它:
<div class="errors">
{{ form_errors(form.name) }}
{{ form_errors(form.email) }}
.
.
.
</div>
但是,這並沒有真正解決問題。
任何想法?