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