Php Symfony表单错误:类型为“…”的实体&引用;必须管理传递到选择字段的。也许您忘了将其保存在实体管理器中 客观的 我正在尝试做一个基本的表格,让一个新球员报名参加一项运动。这是从Symfony中提取的 例如:

Php Symfony表单错误:类型为“…”的实体&引用;必须管理传递到选择字段的。也许您忘了将其保存在实体管理器中 客观的 我正在尝试做一个基本的表格,让一个新球员报名参加一项运动。这是从Symfony中提取的 例如:,php,forms,symfony,dynamic,dynamic-forms,Php,Forms,Symfony,Dynamic,Dynamic Forms,代码 我有3个实体: 戏剧家 运动 位置 我有一张表格: 新播放类型 我有一个控制器: NewPlayerController 错误: 细节: 每当我使用类型为“EntityType”的表单生成器创建表单时,我似乎都会遇到此错误,如下所示: 参考: (第22行) 在我看来,这是因为我在“NewPlayerType”表单中引用了“Sport::class”。如果我引用“PlayerList::class”,我不会遇到错误。但是如何让基于其他实体的字段填充到单个表单上呢?从概念上讲,我在这

代码 我有3个实体:

戏剧家

运动

位置

我有一张表格:

新播放类型

我有一个控制器

NewPlayerController

错误: 细节: 每当我使用类型为“EntityType”的表单生成器创建表单时,我似乎都会遇到此错误,如下所示: 参考(第22行)


在我看来,这是因为我在“NewPlayerType”表单中引用了“Sport::class”。如果我引用“PlayerList::class”,我不会遇到错误。但是如何让基于其他实体的字段填充到单个表单上呢?从概念上讲,我在这里遗漏了一些东西,我想…

好吧,我在谷歌搜索了20个小时后发现了这一点,用手掌捂住脸,愤怒地流泪

问题在于我在实体之间建立的关系。我有“一对一”的关系,而我本应该有“多对一”的关系

如果你曾经看到过这个问题,从“向后”的角度重新写下你的关系,这应该可以做到

谢谢

Entity of type "Doctrine\Common\Collections\ArrayCollection" passed to the choice field must be managed. Maybe you forget to persist it in the entity manager?
    ->add('sport', EntityType::class, [
        'class' => Sport::class,
        'query_builder' => function(EntityRepository $er) {
            return $er->createQueryBuilder('s')
                ->orderBy('s.sport', 'ASC');
        },
        'choice_label' => 'sport',
    ])