我的问题如下:
throw new HttpException(422, "some message")
在 Controller 中不起作用。
但是,throw new HttpException(404, "some message")
可以工作,400(等等)也可以。
为什么我不能抛出带有 422 HTTP 状态代码的 HttpException
?
当我尝试这样做时,我收到了包含以下调试信息的 [200] 响应:
Fatal error: Uncaught exception 'ErrorException' with message 'Notice: Undefined offset: 422 in app\cache\dev\classes.php line 3079' in vendor\symfony\src\Symfony\Component\HttpKernel\Debug\ErrorHandler.php on line 67
( ! ) ErrorException: Notice: Undefined offset: 422 in app\cache\dev\classes.php line 3079 in vendor\symfony\src\Symfony\Component\HttpKernel\Debug\ErrorHandler.php on line 67
(如果重要的话我会使用 FOSRESTBundle... 当然我清除了缓存)
最佳答案
HTTP 状态 422 仅在版本 2.1 中添加。 主动调试与 Response::setStatusCode 生成的通知相结合,生成了这个丑陋的异常。不过,在生产过程中似乎没有出现任何问题。但是,我的建议是不要使用它。
在我看来,这种行为是意外的,应该报告。
关于Symfony2 HttpException(422, 'some message')不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11550765/