在symfony2中使用fosrest bundle进行自定义异常

时间:2016-06-26 16:49:10

标签: symfony fosrestbundle

您好我正在尝试添加自定义异常,但它无法正常工作

现在我的回答是这样的:(也就是故障的debuger不会触发那个类)

{
  "error": {
    "code": 500,
    "message": "Required Parameter Missing"
  }
}

这是fos rest的默认例外 我添加了包装异常的新类

  class ExceptionWrapperHandler implements ExceptionWrapperHandlerInterface {
public function wrap($data)
{
    $exception = $data['exception'];

 $newException = array(
        'success' => false,
        'exception' => array(
            'exceptionClass' => $exception->getClass(),
            'message' => $data['status_text']
        )
    );
    return $newException;

}

}

我的配置文件:

fos_rest:
    param_fetcher_listener: true
    body_listener: true
    format_listener: true
    routing_loader:
           default_format: json
    view:
        view_response_listener: force
        formats:
            json: true
            xml: true
        templating_formats:
            html: false
#        exception_wrapper_handler: CLASS path
    exception:
        enabled: true
    service:
        exception_handler: appname.exception_handler 
        serializer: jms_serializer.serializer
    serializer:
        serialize_null: true

1 个答案:

答案 0 :(得分:0)

您需要将您的Exception类添加到config.yml中fos_rest配置中的exception.messages数组中,以显示您的自定义消息

fos_rest:
    exception:
        enabled: true
        messages:
            'AppBundle\ExpeptionHandler\ ExceptionWrapperHandler': true