【问题标题】:Ajax : get errors form in controller and resend them with jsonAjax:在控制器中获取错误表单并使用 json 重新发送它们
【发布时间】:2013-07-26 22:14:14
【问题描述】:

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

这是我的代码:

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() 函数返回正确的结果,但我希望它返回一个数组。

【问题讨论】:

    标签: php ajax forms symfony


    【解决方案1】:

    你可以使用 JsonResponse

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

    【讨论】:

    • 我用你的语法替换了,但我还是有同样的问题。 getErrors 返回的错误为空。
    • 你可以试试“$form->handleRequest($request);”替换“$form->bind($request);”
    • 同理,奇怪的是我们没有简单的方法来获取控制器中的错误...
    • 如果你想从表单中获取错误,你只需使用验证器服务Using the validator Service
    • 哦,好吧,我以为我们可以在不手动验证的情况下得到错误。我会告诉你这个解决方案是否有效!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多