我有"客户"、"产品"和"版本"表。每个客户可以有多个产品,每个产品有多个版本。我已经创建了多对多关系"customers_products",一切都很完美。
此外,我还在"产品"和"版本"之间创建了一对多关系。
问题:如何在"customers_products"表中添加额外的列(version_id),以便我可以构建表单,用户可以在其中选择产品和版本来创建新客户。
一旦关联有了数据,它就不再是关联了。
您必须实现两个ManyToOne
而不是一个ManyToMany
。
有关完整示例,请参阅有关此问题的出色答案。
您可以通过谷歌搜索问题的标题来获得许多其他示例。
在多对多的关联中添加额外的列实际上会改变该关系的含义。为了用 Doctrine 表示这一点,您需要将关联更改为三个实体之间的一对多/多对一。
您最终将在域模型中拥有三个实体,这将允许您访问客户产品实体的版本。
您可以在Doctrine的文档中阅读更详细的解释。