如何从Symfony2 ManyToMany中删除化合物PK

时间:2012-03-20 20:19:38

标签: symfony doctrine-orm

我需要允许多个产品出现在购物车中。我不想增加数量列,实际上我想在购物车中使用相同的产品实体两次。我想重用产品实体,而不是创建CartProduct中介。

购物车ManyToMany产品

但是,该表是由doctrine创建的:schema:使用复合主键cart_id + product_id进行更新。这可以防止我两次添加相同的产品。

我该如何解决这个问题?

这不是我需要ManyToMany支持重复条目的唯一用例。这对Symfony2 / Doctrine来说是不可能的吗?

1 个答案:

答案 0 :(得分:1)

这不是对教条的限制,而是对关系数据库的限制。每行都需要一个唯一的主键,默认情况下,在Doctrine 2中,它是product_id,cart_id。

唯一的方法是让自己成为一个明确的CartProduct实体,并添加至少一个列。没那么难。只需从Cart和Product建立OneToMany与它的关系。