2016-06-26 6 views
1

Привет Я пытаюсь добавить пользовательское исключение, но он не работаетПользовательские исключения с fosrest узелком в Symfony2

теперь мой ответ, как: (а также пробой Debuger не вызовет этот класс)

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

это исключение по умолчанию ФОС отдыха Я добавил новый класс, который wrapp за исключением

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 

ответ

0

Вам нужно добавить свой класс исключений в массив exception.messages в вашем fos_rest конфигурации в вашем config.yml для того, чтобы показать свое собственное сообщение

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

привет , Это не работает –