Ajax:在控制器中获取错误表单,并用json重新发送


Ajax : get errors form in controller and resend them with json

我想在表单中得到错误,但实际上返回的是空的。控制器接收数据。当我发送一份有效的表格时,一切都很好。

这是我的代码:

if ($request->getMethod() == 'POST') {
            $form->bind($request);
            if ($form->isValid()) {
               // This part is OK
            }
            else {
                $val = array();
                    // I get errors : 
                $val['error'] = $form->getErrors();
                echo json_encode($val);
                $response = new Response;
                $response->headers->set('Content-Type', 'application/json');
                return $response;
            }
        }

我试图在表单生成器中添加array('error_bubbling'=>true),但返回的结果不显示任何字段有错误。。。

函数getErrorsAsString()返回正确的结果,但我希望它返回一个数组。

您可以使用JsonResponse

use Symfony'Component'HttpFoundation'JsonResponse;
$response = new JsonResponse();
$response->setData(array(
    'data' => 123
));
return $response;