我想在symfony控制器中过滤GET请求发送的数据。
将给定数据作为数组作为$ request-> query-> all()例如,我希望过滤键只保留我需要的键和良好类型。
最终,我想将有效数据作为默认数据传递给表单构建器createFormBuilder($ my_valid_data),但它必须正确,因为传递错误的类型(即2维数组而不是数组导致崩溃)。
Symfony会提供这样的功能吗?
谢谢。
注意:filter_var_array + array_filter不够好,因为当我需要单维时,它将允许多维。
答案 0 :(得分:0)
我认为你的做法是错误的,但是你没有提供太多信息。 如果数据有效,您可能不需要将其传递给表单(表单的形式)。您希望将原始请求传递给实际表单,只需获取所需的值并丢弃其余的值。
您可以通过创建一个接受所需值的表单并使用allow_extra_fields来完成此操作,这样您就可以放弃其余的。这样你就可以对你所追求的领域实施验证。
编辑:如果您想根据对页面的请求为表单设置一些值,可以在调用$form->setData()
并传递表单之前使用events甚至使用createView
到模板。