当表单未验证时,我需要访问表单类内提交的数据,以便可以在自定义字段中设置一些选项。
我尝试过
$data = $builder->getForm()->getData();
$data = $builder->getData();
但是$data
有空对象。那么...表单类中验证错误后访问用户提交的数据的正确表单是什么?
谢谢
最佳答案
问题是您正在尝试访问尚未处理的提交数据。基本上,当您在构建器中(抽象类型的 buildForm
)时,您正在构建表单结构。它与表单提交/绑定(bind)无关。这就是为什么当你调用$builder->getData()
时你会得到初始数据,因为它只知道这个状态下的初始数据。
知道表单组件允许您通过事件访问提交的数据。您可以将监听器附加到构建器并依赖 *_submit
事件之一。 FormEvent 类将使用 $event->getData()
为您提供提交的数据。
有关详细信息,请参阅此文档:http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html
关于Symfony2.访问 Form 类中提交的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22252654/