如何跳过symfony2警告消息

时间:2016-02-17 09:57:58

标签: php symfony

我尝试在try的catch部分引入错误500标头。我通过Ajax在symfony控制器方法中调用我的API方法。我的问题是,由于此symfony警告页面

,我无法显示错误消息

enter image description here

以下是API端代码:

try{
           //Some code 

        }catch (Exception $e){
            header('HTTP/1.1 500 Internal Server Error');
            die($e->getMessage()); // I get this message in the error part of the ajax call
        }

控制器方法:

public function createModelAction(){

    $mail = "test";
    $pass = "test";

    $oauth = new OAuth($mail, $pass);

    $baseUrl = $this->container->getParameter('url_api');

    // Récupération des rapports d'avis du réseau demandé
    $link = "{$baseUrl}model/" . $mail . "/" . $pass . "/test";

    $oauth->fetch($link, $_REQUEST, OAUTH_HTTP_METHOD_POST);
    $response = json_decode($oauth->getLastResponse(), true);

    if ($response['error']) {
        return new JsonResponse($response['error']);
    } else {
        return new JsonResponse($response['model']);
    }
}

所以可以选择跳过此问题。

由于

1 个答案:

答案 0 :(得分:2)

使用Symfony请求和响应,而不是手动使用header

将API中的代码更改为:

} catch (Exception $e) {
    $response['error'] = $e->getMessage();

    return $response;
}

在您的控制器中,定义您的回复的状态代码:

if ($response['error']) {
    return new JsonResponse($response['error'], 500);
}

您还可以查找创建ExceptionListener并返回JsonResponse而不是抛出异常。