如何在适当的位置定位Symfony2表格错误?

如何在适当的位置定位Symfony2表格错误?,symfony,symfony-forms,Symfony,Symfony Forms,我在我的项目中使用Symfony表单,下面是代码: 表格: public function buildForm(FormBuilder $builder, array $options) { $builder->add('name', 'text', array('required' => true, 'error_bubbling' => true)); $builder->add('email', 'email', array('required' =

我在我的项目中使用Symfony表单,下面是代码:

表格

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('name', 'text', array('required' => true, 'error_bubbling' => true));
    $builder->add('email', 'email', array('required' => true, 'error_bubbling' => true));
    $builder->add('message', 'textarea', array('required' => true, 'error_bubbling' => true));
}

public function getDefaultOptions(array $options)
{
    $constraintCollection = new Collection(array(
        'name' => new NotBlank(array("message" => "Please fill out Name field")),
        'email' => array(new Email(array("message" => "Invalid Email", "checkMX" => true)),
                         new NotBlank(array("message" => "Please fill out Email field"))),
        'message' => new NotBlank(array("message" => "Please fill out Message field"))
    ));

    return array(
        "validation_constraint" => $constraintCollection,
    );
}
模板(细枝)-


联系我们:

{{form_errors(form.name)}} {{form_标签(form.name,“Your name”)} {{form_小部件(form.name)}

{{form_errors(form.email)} {{form_标签(form.email,“您的电子邮件”)} {{form_小部件(form.email)}

{{form_errors(form.message)}} {{form_标签(form.message,“您的邮件”)} {{form_小部件(form.message)}

{{form_rest(form)} 提交
当我尝试提交空表单时,它没有显示任何错误消息,因此我还添加了

{{form\u errors(form)}}
之后的
,如我所见。
但现在它在顶部位置向我显示表单错误,而不是它们各自的字段。

我做错什么了吗?谢谢您的时间。

删除表单定义中的“error\u bubbling”=>true选项。此选项使字段上的任何错误都“传递”到表单,这就是为什么您会在表单错误(表单)中看到错误,而不是表单错误(字段)

删除表单定义中的“错误冒泡”=>true选项。此选项使字段上的任何错误都“传递”到表单,这就是为什么您会在表单错误(表单)和非表单错误(字段)中看到错误的原因。

它在更高的表单级别对错误消息进行分组,而不是让它们出现在每个相关字段上。.我在回答中解释过:如果您将error\u bubbling设置为true,然后,在任何字段中产生的任何错误都会“发送”到表单。此外,
集合
表单类型具有默认为
true的
error\u冒泡
(在此处插入snide注释),因此您必须覆盖它。它将错误消息分组到更高的表单级别,不要让它们出现在每个相关字段上。我在回答中解释了这一点:如果将error\u bubbling设置为true,则任何字段中产生的任何错误都会“发送”到表单。此外,
集合
表单类型有
error\u bubbling
,默认为
true
(在此处插入snide注释),因此必须覆盖它。
<form action="{{ path('somePath') }}" method="post">
        <p>Contact Us :</p>
          {{ form_errors(form.name) }}
        <p> {{ form_label(form.name, "Your Name") }}
            {{ form_widget(form.name) }}
        </p>
          {{ form_errors(form.email) }}
        <p> {{ form_label(form.email, "Your Email") }}
            {{ form_widget(form.email) }}
        </p>
          {{ form_errors(form.message) }}
        <p> {{ form_label(form.message, "Your Message") }}
            {{ form_widget(form.message) }}
        </p>
        {{ form_rest(form) }}
    <div class="submit-button">
      <button class="button">Submit</button>
    </div>
</form>