我需要允许多个产品出现在购物车中。我不想增加数量列,实际上我想在购物车中使用相同的产品实体两次。我想重用产品实体,而不是创建CartProduct中介。
购物车ManyToMany产品
但是,该表是由doctrine创建的:schema:使用复合主键cart_id + product_id进行更新。这可以防止我两次添加相同的产品。
我该如何解决这个问题?
这不是我需要ManyToMany支持重复条目的唯一用例。这对Symfony2 / Doctrine来说是不可能的吗?
答案 0 :(得分:1)
这不是对教条的限制,而是对关系数据库的限制。每行都需要一个唯一的主键,默认情况下,在Doctrine 2中,它是product_id,cart_id。
唯一的方法是让自己成为一个明确的CartProduct实体,并添加至少一个列。没那么难。只需从Cart和Product建立OneToMany与它的关系。