脚本宝典收集整理的这篇文章主要介绍了php – Symfony2:动态生成嵌入式表单,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我使用FormEvents :: PRE_SET_DATA,那么我无法接收嵌入表单的发布数据 – 只有父对象数据可用
$builder->get('contacts')->addEventListener( FormEvents::POST_SET_DATA function(FormEvent $event) { $data = $event->getData(); //$data will contain embedded form object - not the data object! } );
如果我使用FormEvents :: POST_SubMIT,那么我可能会收到数据,但我无法修改表单
$builder->get('contacts')->addEventListener( FormEvents::POST_SUBMIT,function(FormEvent $event) { $data = $event->getData(); //$data will contain filled data object - everything is ok $form = $event->getForm(); //form will be ok if ($data->getSomeValue()) { $form->add(...); //Error: "You cannot add children to a submitted form" } } );
我使用Symfony 2.4.
非常感谢你提前!
对于它们两者,可以获取提交数据并更改表单.
他们之间的区别:
> FormEvents :: PRE_SUBMIT – 数据未规范化,因此$event-> getData()
返回简单数组
> FormEvents :: SUBMIT – 数据是NORMALIZED,因此返回$event-> getData()
模型对象
而且还有更好的可能性:
您可以使用FormEvents :: POST_SUBMIT但是您需要将它附加到子表单字段 – 而不是整个子表单.
在这种情况下,您将能够:
>以标准化形式获取所有POST数据(模型对象)>修改表单字段,该字段位于绑定了哪个事件的字段之后>字段值我们将根据POST数据自动设置
以上是脚本宝典为你收集整理的php – Symfony2:动态生成嵌入式表单全部内容,希望文章能够帮你解决php – Symfony2:动态生成嵌入式表单所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。