Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms 如何在一个位置显示所有表单错误_Forms_Symfony_Error Handling - Fatal编程技术网

Forms 如何在一个位置显示所有表单错误

Forms 如何在一个位置显示所有表单错误,forms,symfony,error-handling,Forms,Symfony,Error Handling,我看到过关于同一问题的各种帖子,但没有什么对我有用 这是我的表格 <form action="" method="post" {{ form_enctype(form) }} novalidate> {{ form_errors(form) }} <div class="login_field"> {{ form_label(form.name) }} {{ form_widget(form.name) }}

我看到过关于同一问题的各种帖子,但没有什么对我有用

这是我的表格

<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>&nbsp;</label>
        <input type="submit" value="Create" class="submit_btn" />
    </div>
</form>

{{form_errors(form)}}
{{form_标签(form.name)}
{{form_小部件(form.name)}
{{form_标签(form.status)}
{{form_小部件(form.status)}

根本不显示错误。我如何摆脱这个问题?

您必须为每个字段包含
表单错误

<div class="login_field">
    {{ form_errors(form.name) }}    
    {{ form_label(form.name) }}
    {{ form_widget(form.name) }}                    
</div>
。。。或者使用FormType类中表单字段的选项,让表单错误冒泡到顶部。这意味着它们将通过
{{form_errors(form)}}
呈现

$builder->add('fieldname', 'text', array(
    'error_bubbling' => true,
));

快速提示:自symfony 2.3以来,您可以在表单类型中包含submit按钮,而无需手动渲染()。

要在表单顶部显示所有错误,请执行以下操作

<ul>
    {% for error in form.vars.errors.form.getErrors(true) %}
        <li>{{ error.message }}</li>
    {% endfor %}
</ul>
    {form.vars.errors.form.getErrors(true)%%中的错误为%
  • {{error.message}}
  • {%endfor%}

对于错误冒泡,我必须使用表单小部件…对吗?如果您在每个字段(在FormType类中)上放置
错误冒泡
,错误将冒泡到父表单中,这意味着如果您希望它们都位于顶部,它们将出现在
{form\u errors(form)}
中。quote:如果在普通字段上设置为true,则该字段的任何错误都将附加到主窗体,而不是特定字段。否则,您必须为每个字段添加
{{form_errors(form.fieldname)}}
。在我的示例(form)中,如何为每个字段添加error_冒泡?你能提供一个例子吗?在我的答案中添加了这个例子。
{{form_rest(form)}}
在提交按钮上方缺失:)
<ul>
    {% for error in form.vars.errors.form.getErrors(true) %}
        <li>{{ error.message }}</li>
    {% endfor %}
</ul>