Symfony 4:$ form-> getData()返回空数组,其中同一数组填充在$ request-> request-> all()中

时间:2019-07-16 09:48:59

标签: forms symfony post request symfony4

我现在正面临一个奇怪的问题

这是我的代码:

x2%>%
  ggplot(aes(y= prop, x = dummies, fill = factor(dum_value)))+
  geom_bar(stat = "identity", position = "dodge")+
  coord_flip()+
  facet_wrap(~group)

如您所见,出于调试目的,我正在显示整个$ request-> request和$ form-> getData()。

令人惊讶的是,第一个完全填充了正确的信息,第二个为空。

我有点懒于手动检查此数组中的信息(公司信息),所以这是结果的经过审查的屏幕截图:

Controller response

知道为什么不解析表单吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

标准symfony Form类将额外的数据存储在extraData属性的一个位置,可以通过getExtraData()进行访问。对于子表单,这显然不是特别有用(然后可能必须在子表单上调用它)。我认为allow_extra_fields标志主要是为了防止表格在出现额外数据时出错,因为在他们的头脑中没有人会使用Form类表示 no 字段(因此没有验证,也没有使用表单类的特权)。因此,您的用法是...“创新”。

正确的 方法是很好地定义attributes在表单中可以具有的结构(可选地,将required设置为{{1} }),解决了人们尝试使用表单解决的大多数 actual 问题。 -这就是表单的含义,即递归处理字段/子表单的对象。如果您只是想忽略/规避这一点...

不正确的方法可能是,通过一些数据映射器或数据转换器或事件处理工具来教某种表单类型,以处理提供的任何任意数据。

最简单的方法:只需使用false(可能是反序列化器)即可。