【问题标题】:Symfony subfom can't acces unmapped dataSymfony 子表单无法访问未映射的数据
【发布时间】:2014-04-11 13:41:38
【问题描述】:

我正在尝试使用可能的子表单(可以通过单击添加/删除添加/删除)创建一个表单,它可以工作,但我无法从表单中获取未映射的变量

主窗体

    $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”字段

试图转储表格,我从“课程”获得的数据,在任何地方都找不到“地图”

编辑 1: 如果我摆脱课程到实体“new CoursesType()”的映射并添加一个映射错误,我会得到我想要的数据(但在数组中),但是这样我必须手动检查所有数据并添加对于一个实体,这可以避免吗?

【问题讨论】:

    标签: php forms symfony subform


    【解决方案1】:

    可以在->getData()之前将$form->get()语句串在一起

    $courses = $form->get('courses')
    foreach ($courses as $course) {
        $map = $course->get('map')->getData();
    }
    

    我不知道这将如何在集合中添加和删除项目,但对于固定集合来说可以正常工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      • 2015-01-04
      • 2020-03-01
      • 2020-07-04
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      相关资源
      最近更新 更多