Symfony 3.4:过滤/验证GET参数

时间:2018-04-19 13:56:04

标签: php symfony filtering http-get symfony-3.4

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

将给定数据作为数组作为$ request-> query-> all()例如,我希望过滤键只保留我需要的键和良好类型。

最终,我想将有效数据作为默认数据传递给表单构建器createFormBuilder($ my_valid_data),但它必须正确,因为传递错误的类型(即2维数组而不是数组导致崩溃)。

Symfony会提供这样的功能吗?

谢谢。

注意:filter_var_array + array_filter不够好,因为当我需要单维时,它将允许多维。

1 个答案:

答案 0 :(得分:0)

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

您可以通过创建一个接受所需值的表单并使用allow_extra_fields来完成此操作,这样您就可以放弃其余的。这样你就可以对你所追求的领域实施验证。

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