symfony2:在控制器中获取表单错误

symfony2:在控制器中获取表单错误,symfony,symfony-forms,Symfony,Symfony Forms,我通过AJAX调用验证了我的表单,但无法检索“错误消息” 以下是我所说的: $newRdvForm = $this->createForm(new RdvType()); $newRdvForm->handleRequest($request); if ($newRdvForm->isValid()) { // set of instructions to be performed when the form is valid } else { $error

我通过AJAX调用验证了我的表单,但无法检索“错误消息”

以下是我所说的:

$newRdvForm = $this->createForm(new RdvType());

$newRdvForm->handleRequest($request);

if ($newRdvForm->isValid()) { 
   // set of instructions to be performed when the form is valid
}
else {

   $errors= array();

   foreach ($newRdvForm->getErrors() as $key => $error) {
        $errors[$key] = $error->getMessage();
   }   

   $response = new Response(json_encode($errors));
   $response->headers->set('Content-Type', 'application/json');

   return $response; 

}

我用的是symfony2.7。上面的代码没有检索到错误消息。

也许您的for myte是从多个嵌套类型生成的?尝试使用getErrors(true)


对于表单中的错误列表,您可以将其保留在数组中

   foreach ($form->getErrors(true, false) as $error) {
                $errors[] = $error->current()->getMessage();
            }

我使用$resolver->setDefaults(数组('allow_extra_fields'=>true));当我构建formNow时,我可以检索所有错误消息,但如何检索“输入ID”或“输入名称”??
   foreach ($form->getErrors(true, false) as $error) {
                $errors[] = $error->current()->getMessage();
            }