ManyToOne拥有副作用

时间:2013-10-15 15:13:31

标签: php mysql symfony orm doctrine-orm

大家好。

我有一个问题,因为我无法入睡) 例如,如果我有一个名为Product的实体(类)。我应该用这个产品链接一堆图像。在一个数据库(在我的情况下是MySQL)中看起来像这样 - 我创建了一个产品表和一个图像表。图像表将有一个存储产品ID的字段。

我现在明白了。我不明白的是 - 当我在ORM(Doctrine2)中使用我的产品和图像时,我应该为Image类创建inversedBy =“images”注释,并为Product类创建mappedBy =“products”。在我的应用程序中,Product对象位于此连接的拥有方。

我该怎么办?我应该创建ManyToMany关系,还是有另一种方式?

谢谢。

P.S。 images是Product实体

中的ArrayCollection实例

3 个答案:

答案 0 :(得分:1)

除了设置

的文档中描述的内容之外,我没有提出您的问题

https://doctrine-orm.readthedocs.org/en/latest/reference/association-mapping.html#one-to-many-bidirectional

哎呀,它甚至使用“Product”作为示例中的实体 - 只需替换“Feature”“Image”就可以了。

您是说想要双向关系吗?

答案 1 :(得分:0)

可以在多个产品中使用一张图片吗?如果我认为是正确的,它就不能。因此,我会选择OneToMany关系。

答案 2 :(得分:0)

确定。我已经解决了这个问题。我所做的是将cascade = {“persist”}添加到关系的反面,并在我添加的Product类的addImage方法中添加: 公共函数addImage($ image) {     $这 - >图像 - >添加($图像);     $图像 - > setProduct($本);     返回$ this; }