我正在尝试在我的 symfony 控制器上使用 QueryParam。
我不想接受查询中的空参数的问题。但是当我用
@REST\QueryParam(name="test" , description="The test", requirements="\w+", strict=true, nullable=false)
我尝试调用mysite.com/test=
它仍在工作的网络服务。
如果参数为空,我必须做什么来拒绝请求中的空参数而不在代码中进行测试
谢谢
我正在尝试在我的 symfony 控制器上使用 QueryParam。
我不想接受查询中的空参数的问题。但是当我用
@REST\QueryParam(name="test" , description="The test", requirements="\w+", strict=true, nullable=false)
我尝试调用mysite.com/test=
它仍在工作的网络服务。
如果参数为空,我必须做什么来拒绝请求中的空参数而不在代码中进行测试
谢谢
当测试足够奇怪时,验证似乎不适用于param_fetcher_listener
简单的配置true
,但是当我使用时force
,一切都突然起作用了:
# config.yml
fos_rest:
param_fetcher_listener: force
在控制器中:
/**
* @QueryParam(name="test" , description="The test", requirements="[a-zA-Z]+", strict=true, nullable=false, allowBlank=false)
*/
public function indexAction($test)
{
// replace this example code with whatever you need
return new JsonResponse($test);
}
请注意,在我的示例中,有多个验证,并且只会?test=a
起作用。不test
,?test=
并且?test=1
由于特定原因将全部不起作用。
如果有人知道如何使用它,param_fetcher_listener: true
我很好奇:)
另请参阅文档(https://symfony.com/doc/master/bundles/FOSRestBundle/param_fetcher_listener.html)了解使用的含义force