使用Symfony2和orm.yml文件将实体映射到数据库中如何在实体A,B,C之间创建三元关系,这会导致包含A_PrimaryKey,B_PrimaryKey, C_PrimaryKey实体之间的关系是这样的:Symfony2三元关系
AB多对多 AC多对多BC 多对多
使用Symfony2和orm.yml文件将实体映射到数据库中如何在实体A,B,C之间创建三元关系,这会导致包含A_PrimaryKey,B_PrimaryKey, C_PrimaryKey实体之间的关系是这样的:Symfony2三元关系
AB多对多 AC多对多BC 多对多
所以,你的基本模式是这样的:
A 1:n D
B 1:n D
C 1:n D
的阳明对于A会是什么样子这样的:
Acme\TestBundle\Entity\A:
type: entity
# ...
oneToMany:
products:
targetEntity: D
mappedBy: d
你可以只是B和C.对于d重复这一点,它会是这个样子:
Acme\TestBundle\Entity\D:
type: entity
# ...
manyToOne:
a:
targetEntity: A
inversedBy: as
joinColumn:
name: a_id
referencedColumnName: id
b:
targetEntity: B
inversedBy: bs
joinColumn:
name: b_id
referencedColumnName: id
c:
targetEntity: C
inversedBy: cs
joinColumn:
name: c_id
referencedColumnName: id
试试看吧。也许试着先映射A和D.如果这样做,继续B.因此你更容易在路上发现错误!
您是否尝试过创建多对一/一对多的关系,就像使用其他关系一样?我猜想,这种关系是不受支持的! – Sgoettschkes 2012-03-13 13:25:20
我试过,但因为我做了它失败了。你能指出我会怎么做吗?谢谢。 – Haritz 2012-03-13 14:13:48