Symfony2.访问 Form 类中提交的值

标签 symfony symfony-forms

当表单未验证时,我需要访问表单类内提交的数据,以便可以在自定义字段中设置一些选项。

我尝试过

$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/

相关文章:

symfony - 访问 Twig 中的集合字段

caching - 使用 symfony2 清除缓存命令不刷新静态 Assets

Symfony2 - Misd phonnumberbundle : Unable to transform value for property path "phone_number": Expected a\libphonenumber\PhoneNumber

php - 在 Twig 中使用命名空间别名

php - 在 HWIOAuthBundle 中调用 loadUserByOAuthUserResponse() 时

php - Symfony2 : Multiple Upload File doesn't work

symfony - Docker 执行 Symfony 命令 : Permission denied

symfony - 集合字段类型不创建表单元素

php - 将约束传递给 symfony 集合类型

forms - 如何使用 Symfony2 表单清除字段值