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是集合中的偏移量