我有一个实体DishesWithCategory通过其他实体的链接:
/**
* @ORM\ManyToOne(targetEntity="Dishes", cascade={"persist"})
*/
protected $dishes;
/**
* @ORM\ManyToOne(targetEntity="MenuCategory", cascade={"persist"})
*/
protected $category;
在管理员中我有:
$formMapper
->add('dishes', 'sonata_type_admin', [
'delete' => false,
'btn_add' => false
])
->add('category', 'sonata_type_model',[
'expanded' => true,
'multiple' => true,
])
;
当我尝试创建一道菜时,我收到错误: 在关联ZaWeb \ MenuBundle \ Entity \ DishesWithCategory#category上找到Doctrine \ Common \ Collections \ ArrayCollection类型的实体,但期望ZaWeb \ MenuBundle \ Entity \ MenuCategory
有人可以面对吗?我该如何解决?
答案 0 :(得分:0)
我没有完全理解你的模型,但我认为问题来自:multiple =>类别为true,因为您只能为DishesWithCategory设置一个类别(ManyToOne)。
您需要将模型更改为$ category的OneToMany,或者您需要删除可能位于模型构造函数中的ArrayCollection并删除multiple =>真。
您可能需要这样做:
$formMapper
->add('dishes', 'sonata_type_admin', [
'delete' => false,
'btn_add' => false
])
->add('category', 'sonata_type_model',[
'expanded' => true
])
;