Symfony 访问“中的额外字段”;“收集字段”;未映射到对象的窗体的

Symfony 访问“中的额外字段”;“收集字段”;未映射到对象的窗体的,symfony,Symfony,我正在使用symfony2编程一个站点 我有一个表单,其中包含一个名为OptionType的From Type的集合。像这样的事情: $form = $this->createFormBuilder($defaultData) ->add('short_title', 'text') ->add('options', 'collection', array('type' => new OptionType(),'allow_add' => true,

我正在使用
symfony2
编程一个站点

我有一个表单,其中包含一个名为
OptionType
From Type
的集合。像这样的事情:

$form = $this->createFormBuilder($defaultData)
    ->add('short_title', 'text')
    ->add('options', 'collection', array('type' => new OptionType(),'allow_add' => true, 'allow_delete' => true, 'by_reference' => false))
    ...
根据定义,
OptionType
映射到
Option
类的对象

现在我需要向
OptionType
添加一个额外字段,该字段不是
Option
类的成员。对于这种情况,我将这一行添加到
OptionType
buildForm
函数中:

$builder->add('optionImage', 'file', array('property_path' => false));
但问题是,我怎样才能访问这个新领域的数据

在将此额外字段直接添加到表单的情况下,答案是:

$form->get('optionImage')->getData();
但是这里我有一个来自Type的
集合,而这个代码不起作用

答案之一是“不要将
OptionType
映射到
Option
(使用不带类的表单)并获取提交的数据数组,然后自己处理这些数据”;但由于某些原因,我不想使用此解决方案。

尝试以下方法:

$form['options'][0]['optionImage']->getData();
其中0是集合中的偏移量