Я пытаюсь добавить настраиваемый элемент управления исключениями в 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