自定义表单错误 symfony 4
Customize form error symfony 4
在 Symfony 4 中,当您执行类似操作时:
<div>
{{ form_label(form.something) }}
{{ form_errors(form.something) }}
{{ form_widget(form.something) }}
</div>
显示如下:
<div>
<label for="form_something">Something</label>
<ul>
<li>This field is required</li>
<li>Another error</li>
</ul>
<input type="text" id="form_something" name="form[something]" />
</div>
我希望能够自定义显示错误的方式。
而不是这样显示:
<ul>
<li>This field is required</li>
<li>Another error</li>
</ul>
我希望它是这样的:
<div class="form-control-feedback">This field is required</div>
<div class="form-control-feedback">Another error</div>
我读了这个页面 How to Customize Form Rendering 但我不明白它是如何工作的。
有什么想法吗?谢谢。
你可以这样做:
<div class="form">
<label class="control-label">{{ form_label(form.something) }}</label>
{{ form_widget(form.something, { 'attr': {'class' : 'form-control'}}) }}
{% if form.something.vars['errors']|length > 0 %}
<ul class="message">
{% for error in form.something.vars['errors'] %}
<li>{{ error.message }}</li>
{% endfor %}
</ul>
{% endif %}
</div>
查看整个代码,您会找到一些问题的答案。
表单的每个属性或字段都有一个 vars
属性,该属性存储一些数据,包括 ['errors']
,其中包含您提交表单后的所有错误。您可以检索此数据并单独显示错误。
linkForm Rendering Customization是关于如何自定义系统中的表单模板。
The documentation 描述了如何全局配置错误输出
您使用
渲染它
{% form_theme form 'form/form_errors.html.twig' %}
{# ... #}
{{ form_errors(form.something) }}
文件form/form_errors.html.twig
{% block form_errors %}
{% spaceless %}
{% for error in errors %}
<div class="form-control-feedback">{{ error.message }}</div>
{% endfor %}
{% endspaceless %}
{% endblock %}
在 Symfony 4 中,当您执行类似操作时:
<div>
{{ form_label(form.something) }}
{{ form_errors(form.something) }}
{{ form_widget(form.something) }}
</div>
显示如下:
<div>
<label for="form_something">Something</label>
<ul>
<li>This field is required</li>
<li>Another error</li>
</ul>
<input type="text" id="form_something" name="form[something]" />
</div>
我希望能够自定义显示错误的方式。
而不是这样显示:
<ul>
<li>This field is required</li>
<li>Another error</li>
</ul>
我希望它是这样的:
<div class="form-control-feedback">This field is required</div>
<div class="form-control-feedback">Another error</div>
我读了这个页面 How to Customize Form Rendering 但我不明白它是如何工作的。
有什么想法吗?谢谢。
你可以这样做:
<div class="form">
<label class="control-label">{{ form_label(form.something) }}</label>
{{ form_widget(form.something, { 'attr': {'class' : 'form-control'}}) }}
{% if form.something.vars['errors']|length > 0 %}
<ul class="message">
{% for error in form.something.vars['errors'] %}
<li>{{ error.message }}</li>
{% endfor %}
</ul>
{% endif %}
</div>
查看整个代码,您会找到一些问题的答案。
表单的每个属性或字段都有一个 vars
属性,该属性存储一些数据,包括 ['errors']
,其中包含您提交表单后的所有错误。您可以检索此数据并单独显示错误。
linkForm Rendering Customization是关于如何自定义系统中的表单模板。
The documentation 描述了如何全局配置错误输出
您使用
渲染它{% form_theme form 'form/form_errors.html.twig' %}
{# ... #}
{{ form_errors(form.something) }}
文件form/form_errors.html.twig
{% block form_errors %}
{% spaceless %}
{% for error in errors %}
<div class="form-control-feedback">{{ error.message }}</div>
{% endfor %}
{% endspaceless %}
{% endblock %}