我见过有关同一问题的各种帖子,但没有什么可以对我有用。
这是我的表格
<form action="" method="post" {{ form_enctype(form) }} novalidate>
{{ form_errors(form) }}
<div class="login_field">
{{ form_label(form.name) }}
{{ form_widget(form.name) }}
</div>
<div class="clear"></div>
<div class="login_field">
{{ form_label(form.status) }}
{{ form_widget(form.status) }}
</div>
<div class="login_field">
<label> </label>
<input type="submit" value="Create" class="submit_btn" />
</div>
</form>
根本没有显示错误。我怎样才能摆脱这个问题?
答案 0 :(得分:10)
您必须为每个字段添加form_errors
...
<div class="login_field">
{{ form_errors(form.name) }}
{{ form_label(form.name) }}
{{ form_widget(form.name) }}
</div>
...或者只是使用form_row
将所有这三个一起呈现......
<div class="login_field">
{{ form_row(form.name) }}
</div>
...或者使用FormType类中的表单字段的error_bubbling选项让表单错误冒泡到顶部。这意味着它们将通过{{ form_errors(form) }}
呈现。
$builder->add('fieldname', 'text', array(
'error_bubbling' => true,
));
快速提示:自symfony 2.3以来,您可以在FormType中包含提交按钮,而不必手动呈现它(reference)。
答案 1 :(得分:0)
要在表单顶部显示所有错误,请执行以下操作
<ul>
{% for error in form.vars.errors.form.getErrors(true) %}
<li>{{ error.message }}</li>
{% endfor %}
</ul>