在 Symfony4 的表单生成器中添加另一个 EntityType
Adding another EntityType in a formbuilder in Symfony4
是否可以在表单生成器中添加与我们构建表单的对象无关的实体?
我试着解释一下
我有文章、类别、超级类别。
我希望我的用户首先选择 SuperCategory,然后是 Category,然后是 Article。
在表单生成器中,我想将 SuperCategory 添加到 ArticleType,但 SuperCategory 是 Category 中的 ManyToOne 关系,而 Category 是 Article 中的 ManyToOne 关系。
这是我的代码:
$builder->add('SuperCategory', EntityType::class, [
'class' => SuperCategory::class,
'choice_label' => 'Title'
]);
不出所料,它不起作用,因为文章 class 不知道 SuperCategory。
不过,我需要展示这些 SuperCategory 才能制作 "FormFlow"。可能吗?
这是错误(符合预期,不足为奇):
"Neither the property "SuperCategory" nor one of the methods
"getSuperCategory()", "superCategory()", "isSuperCategory()",
"hasSuperCategory()", "__get()" exist and have public access in class
"App\Entity\Article".
$builder->add('SuperCategory', EntityType::class, [
'class' => SuperCategory::class,
'choice_label' => 'Title',
'mapped' => false
]);
'mapped' => false
是解决方案!
是否可以在表单生成器中添加与我们构建表单的对象无关的实体?
我试着解释一下
我有文章、类别、超级类别。 我希望我的用户首先选择 SuperCategory,然后是 Category,然后是 Article。
在表单生成器中,我想将 SuperCategory 添加到 ArticleType,但 SuperCategory 是 Category 中的 ManyToOne 关系,而 Category 是 Article 中的 ManyToOne 关系。
这是我的代码:
$builder->add('SuperCategory', EntityType::class, [
'class' => SuperCategory::class,
'choice_label' => 'Title'
]);
不出所料,它不起作用,因为文章 class 不知道 SuperCategory。
不过,我需要展示这些 SuperCategory 才能制作 "FormFlow"。可能吗?
这是错误(符合预期,不足为奇):
"Neither the property "SuperCategory" nor one of the methods
"getSuperCategory()", "superCategory()", "isSuperCategory()",
"hasSuperCategory()", "__get()" exist and have public access in class
"App\Entity\Article".
$builder->add('SuperCategory', EntityType::class, [
'class' => SuperCategory::class,
'choice_label' => 'Title',
'mapped' => false
]);
'mapped' => false
是解决方案!