我试图制作一个包含可能的子表单的表单(可以在点击添加/删除时添加/删除),它可以工作,但我无法从表单中获取未映射的变量
的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,我得到我想要的数据(但在数组中),但这种方式我必须手动检查所有数据并添加到实体,这可以避免吗?
答案 0 :(得分:1)
可以在$form->get()
->getData()
语句串在一起
$courses = $form->get('courses')
foreach ($courses as $course) {
$map = $course->get('map')->getData();
}
我不知道如何在集合中添加和删除项目,但对于固定集合
可以正常工作