在Symfony4的formbuilder中添加另一个EntityType

时间:2019-01-06 00:08:12

标签: php forms symfony entity formbuilder

是否可以在“表单生成器”中添加与构建表单的对象无关的实体?

我试图解释

我有文章,类别,超级类别。 我希望我的用户先选择SuperCategory,然后选择Category,然后选择Article。

在表单构建器中,我想将SuperCategory添加到ArticleType,但是SuperCategory是Category中的ManyToOne关系,而Article中是ManyToOne关系。

这是我的代码:

$builder->add('SuperCategory', EntityType::class, [
    'class' => SuperCategory::class,
    'choice_label' => 'Title'
]);

如预期的那样,它不起作用,因为Article类不了解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".

1 个答案:

答案 0 :(得分:0)

$builder->add('SuperCategory', EntityType::class, [
                'class' => SuperCategory::class,
                'choice_label' => 'Title',
                'mapped' => false
]);

The

'mapped' => false

是解决方案!