gpt4 book ai didi

php - Symfony2-表单错误(对于整个表单,不是单个字段)不显示

转载 作者:行者123 更新时间:2023-12-03 08:08:07 25 4
gpt4 key购买 nike

由于尚未收到我的问题的任何回复,因此来自Symfony2 Google论坛。

我有以下表格:

<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>一样,什么也没有。如果我输入代码来处理字段级错误,例如{{form_errors(form.email)}},则会显示该错误。

我想我可以像下面这样混淆一下:
<div class="errors">
{{ form_errors(form.name) }}
{{ form_errors(form.email) }}
.
.
.
</div>

但这并不能真正解决问题。

有任何想法吗?

最佳答案

也许您可以尝试以下主题,它对我有用:

{% block form_errors %}
{% spaceless %}
{% if errors|length > 0 %}
{% if compound %}
<ul class="form-errors">
{% for error in errors %}
<li>{{ error.messageTemplate|trans(error.messageParameters, 'validators') }}</li>
{% endfor %}
</ul>
{% else %}
<ul class="form-field-errors">
{% for error in errors %}
<li>{{ error.messageTemplate|trans(error.messageParameters, 'validators') }}</li>
{% endfor %}
</ul>
{% endif %}
{% endif %}
{% endspaceless %}
{% endblock form_errors %}

请注意 复合选项的使用。

您可能必须将每个字段的error_bubbling设置为true

(Nb:这不是我送来的,我不记得应该为此而归功的好心人)

关于php - Symfony2-表单错误(对于整个表单,不是单个字段)不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14751303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com