FOSRestBundle: показать мое пользовательское сообщение об исключении

Я пытаюсь добавить настраиваемый элемент управления исключениями в FOSRestBundle, но он, кажется, игнорирует мои пользовательские сообщения (код состояния ответа в порядке).

У меня есть:

throw new HttpException(404, "User {$id} not found"); 

Но получите ответ json:

 { "error": { "code": 404, "message": "Not Found" } } 

Поэтому я не нашел способ показать свое сообщение

Вы также можете бросить свое собственное исключение, используя следующую конфигурацию:

 fos_rest: exception: codes: 'My\Custom\NotFound\Exception404': 404 messages: 'My\Custom\NotFound\Exception404': true 

Предоставьте настраиваемое сообщение в своем собственном классе исключений и оно должно работать как ожидалось.

В документации View Layer : If you don't like the default exception structure, you can provide your own implementation.

 class ExceptionWrapperHandler implements ExceptionWrapperHandlerInterface { /** * @param array $data * * @return array */ public function wrap($data) { // we get the original exception $exception = $data['exception']; // some operations // ... // return the array return array( 'code' => $code, 'message' => $message, 'value' => $value ); } } 

 // config.yml fos_rest: view: exception_wrapper_handler: Namespace\To\ExceptionWrapperHandler