如何在symfony2中使用额外的字段实现多对多


How to implement many-to-many with extra fields in symfony2?

我有"客户"、"产品"和"版本"表。每个客户可以有多个产品,每个产品有多个版本。我已经创建了多对多关系"customers_products",一切都很完美。

此外,我还在"产品"和"版本"之间创建了一对多关系。

问题:如何在"customers_products"表中添加额外的列(version_id),以便我可以构建表单,用户可以在其中选择产品和版本来创建新客户。

一旦关联有了数据,它就不再是关联了。

您必须实现两个ManyToOne而不是一个ManyToMany

有关完整示例,请参阅有关此问题的出色答案。

您可以通过谷歌搜索问题的标题来获得许多其他示例。

在多对多的关联中添加额外的列实际上会改变该关系的含义。为了用 Doctrine 表示这一点,您需要将关联更改为三个实体之间的一对多/多对一。

您最终将在域模型中拥有三个实体,这将允许您访问客户产品实体的版本。

您可以在Doctrine的文档中阅读更详细的解释。