0

我正在尝试在我的 symfony 控制器上使用 QueryParam。

我不想接受查询中的空参数的问题。但是当我用

@REST\QueryParam(name="test" , description="The test", requirements="\w+", strict=true, nullable=false)

我尝试调用mysite.com/test=它仍在工作的网络服务。

如果参数为空,我必须做什么来拒绝请求中的空参数而不在代码中进行测试

谢谢

4

1 回答 1

0

当测试足够奇怪时,验证似乎不适用于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

于 2017-08-02T09:12:32.457 回答