Symfony subfom无法访问未映射的数据

时间:2014-04-11 13:41:38

标签: php forms symfony subform

我试图制作一个包含可能的子表单的表单(可以在点击添加/删除时添加/删除),它可以工作,但我无法从表单中获取未映射的变量

的MainForm

    $builder
    ...
        ->add('courses', 'collection', array(
            'type' => new CoursesType(),
            'allow_add'    => true,
            'allow_delete'    => true,
            'prototype' => true,
        ))
    ...   

CoursesType表格

    $builder
    ...
        ->add('map', 'file', array(
            'attr' => array(
                'maxsize'     =>'4M',
                'accept'      =>'image/*'
            ),
            'required' => false,
            'data_class' => null,
            'mapped' => false,
        ));
    ...    

CoursesType表单映射到实体,因此我获取其他表单数据,而我无法访问" map"字段

试图转储表格,我从"课程" ,无法找到" map"任何地方

编辑1: 如果我摆脱了课程到实体的映射" new CoursesType()"并添加一个映射false,我得到我想要的数据(但在数组中),但这种方式我必须手动检查所有数据并添加到实体,这可以避免吗?

1 个答案:

答案 0 :(得分:1)

可以在$form->get()

之前将->getData()语句串在一起
$courses = $form->get('courses')
foreach ($courses as $course) {
    $map = $course->get('map')->getData();
}

我不知道如何在集合中添加和删除项目,但对于固定集合

可以正常工作