在Twig模板中,我检查一个字段是否有这样的错误:
{% if form.points.get('errors') is not empty %}
有没有像:
这样的方法{% if form.points.hasErrors() %}
做得更简单?这不是一个很大的区别,但如果我不能做到更容易,为什么不呢。
答案 0 :(得分:100)
{% if not form.vars.valid %}
<div class="alert alert-error">
{{ form_errors(form) }}
</div>
{% endif %}
答案 1 :(得分:83)
该方法不存在。我通常会{% if form.points.vars.errors|length %}
。
答案 2 :(得分:17)
您还可以在覆盖字段渲染时检查错误:
{% block field_row %}
{% spaceless %}
<div class="control-group {% if errors %}error{% endif %}">
{{ form_label(form) }}
<div class="controls">
{{ form_widget(form) }}
{{ form_errors(form) }}
</div>
</div>
{% endspaceless %}
{% endblock field_row %}
答案 3 :(得分:12)
为了更深入的表单定制,我做了:
<div class="form-group {% if form.MYFORMINPUT.vars.valid==false %}has-error{% endif %}">
//some twisted divs
{{form_label(form.MYFORMINPUT)}}
{{form_widget(form.MYFORMINPUT)}}
</div>
Sf2.5
答案 4 :(得分:0)
由于空数组解析为false,您可以将现有支票缩短为
{% if form.WIDGET_NAME.get('errors') %}
答案 5 :(得分:0)
这就是我使用的:
<div class="form-group {{ form.brand.vars.errors|length > '' ? 'has-error' }}">
答案 6 :(得分:0)
如果您使用的是symfony 4,则可以使用此代码检查错误是否存在
{% if form_errors(registrationForm) %}
<div class="alert alert-danger">
{{ form_errors(registrationForm) }}
</div>
{% endif %}
答案 7 :(得分:-1)
正确的代码是(对于Symfony 3.4):
Rs
答案 8 :(得分:-2)
我遇到了类似问题,但我的树枝模板中不存在form.points
。
我必须得到控制器中的错误数量,然后将其作为变量传递给我的模板。 $form->getErrors()
的行为与您在控制器中的预期不同。有关将正确显示表单错误的函数,请参阅this SO question。
答案 9 :(得分:-2)
我已经创建了一个枝条扩展来处理这个问题: 我的扩展
public function hasError($string)
{
if(strlen($string) > 4)
return true;
return false;
}
我在树枝上这样使用它
{{ has_error(form_errors(form.username)) ? form_errors(form.username) : '' }}