在我目前的项目中,我有几个捆绑包。 One Bundle用于REST API,我需要在其中使用自定义消息返回错误的JsonResponse。其他Bundles应显示HTML错误页面。现在我添加了一个" ExceptionListener"使用" onKernelException" -Method,不幸的是总是会被触发。
如何为每个Bundle设置不同的错误处理?或者,如果根据Bundle发生错误,是否有一些好/实用/其他方式来设置不同的响应?
答案 0 :(得分:0)
使用您自己的类(RestfulJsonResponse extends JsonResponse
)扩展JsonResponse,并使您的所有响应都使用捆绑中的新响应(use RestfulJsonResponse as JsonResponse
)
然后在你的监听器中,只检查响应的类型:
if ($response instanceof RestfulJsonResponse) {
// do your thing
}
答案 1 :(得分:0)
找到解决方案。它很脏,但一直有效,直到找到更好的东西。
My ExceptionHandler通过附加到Request的Controller检测执行的Bundle。如果它是REST API Bundle,它将返回一个JsonResponse,否则它将返回,因此将执行Symfony异常处理。