Php Symfony 3.4:筛选/验证获取参数

Php Symfony 3.4:筛选/验证获取参数,php,symfony,filtering,http-get,symfony-3.4,Php,Symfony,Filtering,Http Get,Symfony 3.4,我想在symfony控制器中过滤GET请求发送的数据 以给定的数据作为数组,例如$request->query->all(),我想过滤这些键,只保留我需要的键,并保留好的类型 最后,我希望将有效数据作为默认数据传递给表单生成器createFormBuilder($my_valid_data),但必须正确,因为传递的类型错误(即2维数组而不是数组会导致崩溃) Symfony是否提供了这样的功能 多谢各位 注意:filter\u var\u array+array\u filter不够好,因为当我需

我想在symfony控制器中过滤GET请求发送的数据

以给定的数据作为数组,例如$request->query->all(),我想过滤这些键,只保留我需要的键,并保留好的类型

最后,我希望将有效数据作为默认数据传递给表单生成器createFormBuilder($my_valid_data),但必须正确,因为传递的类型错误(即2维数组而不是数组会导致崩溃)

Symfony是否提供了这样的功能

多谢各位


注意:filter\u var\u array+array\u filter不够好,因为当我需要一个一维时,它将允许多维。

我认为你的方法是错误的,但你没有给出太多信息。 如果数据有效,您可能不需要将其传递给表单(表单的用途)。您希望将原始请求传递给实际的表单,然后只获取所需的值并放弃其余的值

基本上,您可以通过创建一个表单来实现这一点,该表单接受您想要并使用的值,以便可以放弃其余的值。这样,您就可以对您要查找的字段执行验证


编辑:如果您想根据对页面的请求为表单设置一些值,您可以在调用
createView
并将表单传递给模板之前使用甚至使用
$form->setData()

可能我当时解释错了,我的表单是作为帖子提交的,但是我想使用GET参数来填充默认值。但也许我走错了路。那么,有什么好方法可以做到这一点吗?(更不用说,我在POST和GET之间没有使用相同的字段名名称,因为FormBuilder将使用表单[]作为它们的“前缀”)您希望将参数传递到url,因此当您加载表单时,表单上预定义了默认值?是的,like将表单中的默认值smth设置为4(表单[smth])。再次,您应该发布代码,以便从一开始就更容易理解。请参阅我编辑的答案。