Symfony3获取事件侦听器中非映射字段的值

时间:2016-01-23 22:22:57

标签: addeventlistener symfony

尝试制作一个用户选择一个选项的表单,并根据他们的选择加载其他字段。到目前为止,我有一个UserSignupType:

{{1}}

不确定getData方法是否正确使用,如果是,我需要以某种方式获取" userType"从它出来的领域。我不能调用getUserType,因为它不是一个实际的映射属性,我不希望它。它只是决定要显示的字段。

1 个答案:

答案 0 :(得分:1)

您可以通过执行以下操作获取任何表单元素(映射或未映射)的值:

$form->get('fieldName')->getData();

get()会返回一个Form对象,因此如果您有嵌套表单,则可以继续为每个子项调用->get('nextFieldName'),直到找到所需的表单元素。

从表单的getData返回的值将依赖于(不是其他东西)其子元素的映射。如果表单没有子节点,则其值为其值;映射只是确定该值是否填充到其父数据中。

在您的特定情况下,要获取userType元素的数据,您可以执行以下操作:

$userType = $form->get('userType')->getData();