Symfony 设置数据未映射字段无效

Symfony 设置数据未映射字段无效,symfony,Symfony,首先,关于可能的复制,我必须说这不是同一件事,因为他试图访问它,而我试图赋值。我以前看到过,但这对我没有帮助 我试图在显示表单之前设置实体字段数据,我尝试了几种模式,但没有一种对我有效,我真的不理解。 我在做symfony4 这是带有选项“mapped”=>false的表单字段 ->add('roleGroup', EntityType::class, array( 'label' => "Grupo que recibira los correos de

首先,关于可能的复制,我必须说这不是同一件事,因为他试图访问它,而我试图赋值。我以前看到过,但这对我没有帮助

我试图在显示表单之前设置实体字段数据,我尝试了几种模式,但没有一种对我有效,我真的不理解。 我在做symfony4

这是带有选项
“mapped”=>false的表单字段

->add('roleGroup', EntityType::class, array(
             'label' => "Grupo que recibira los correos de validación como Administración",
             'required' => false,
             "mapped" => false,
             'placeholder' => 'Elige el Grupo',
             'class'    => RoleGroup::class,
             'label_attr' => array(
                'class' => 'control-label'
                ),
             'attr' => array(
                    'class' => 'form-control select',
                )
        ))
然后在控制器中,我尝试分配值,但没有成功:

$form["roleGroup"]->setData(21);
我也尝试过:

$form->get("roleGroup")->setData(21);

return $this->render('configuration/index.html.twig', 
    [
        'id'      => $id,    
        'title'   => "General",
        'partial' => "general.html.twig",
        'form'    => $form->createView(),
    ]);
有人能告诉我发生了什么事吗


谢谢

由于表单字段的类型为
EntityType::class
,因此在尝试传递整数值时,预期数据应为
RoleGroup::class
类型的对象

因此,您需要获取实体并将其作为字段数据传递。假设
21
是实体的
id
,那么在控制器中应该是这样的

$em = $this->get('doctrine.orm.entity_manager');
$entity = $em->getRepository(RoleGroup::class)->findOneBy(['id' => 21]);
$form->get('roleGroup')->setData($entity);
或者,您也可以直接在表单字段上将
数据设置为默认值

->add('roleGroup', EntityType::class, array(
         ...
         'data' => $entity
     ));

这是不一样的,因为他试图访问它,而我试图分配值。我以前看到过这一点,但它对我没有帮助。你肯定,我很清楚,这是我的问题,我没有看到,非常感谢。