JMS 序列化程序在控制器操作之前拦截验证
JMS Serializer intercept validation before controller action
我想在控制器操作之前使用参数转换器验证反序列化的实体。
/**
* @ParamConverter("post", converter="fos_rest.request_body")
*/
public function putPostAction(Post $post, ConstraintViolationListInterface $validationErrors)
{
if (count($validationErrors) > 0) {
// Handle validation errors
}
// ...
}
我想在执行控制器操作之前 return 400 和错误,而不是将 contraintvalidation 注入控制器。
如何拦截 FOSREST 参数转换器?
fos_rest.request_body
转换器仅设置来自请求正文的值(如果它们存在于实体中)。您可以创建自己的 ParamConverter class 来处理根据请求创建 Post
。
在此 class 中,您可以抛出异常,在到达控制器之前停止流程。
这是关于 ParamConverters 的 Symfony 文档:
我想在控制器操作之前使用参数转换器验证反序列化的实体。
/**
* @ParamConverter("post", converter="fos_rest.request_body")
*/
public function putPostAction(Post $post, ConstraintViolationListInterface $validationErrors)
{
if (count($validationErrors) > 0) {
// Handle validation errors
}
// ...
}
我想在执行控制器操作之前 return 400 和错误,而不是将 contraintvalidation 注入控制器。
如何拦截 FOSREST 参数转换器?
fos_rest.request_body
转换器仅设置来自请求正文的值(如果它们存在于实体中)。您可以创建自己的 ParamConverter class 来处理根据请求创建 Post
。
在此 class 中,您可以抛出异常,在到达控制器之前停止流程。
这是关于 ParamConverters 的 Symfony 文档: