我想在使用param转换器的控制器操作之前验证反序列化的实体。
/**
* @ParamConverter("post", converter="fos_rest.request_body")
*/
public function putPostAction(Post $post, ConstraintViolationListInterface $validationErrors)
{
if (count($validationErrors) > 0) {
// Handle validation errors
}
// ...
}
我没有将contraintvalidation注入控制器,而是希望在执行控制器操作之前返回400和错误。
如何拦截FOSREST paramconverter?
答案 0 :(得分:1)
fos_rest.request_body
转换器只是在请求主体中设置值(如果它们存在于实体中)。您可以创建自己的ParamConverter类来处理请求中Post
的创建。
在这个类中,您可以抛出异常,这些异常会在到达控制器之前停止流程。
以下是关于ParamConverters的Symfony文档: