Symfony2 3-ary关系

时间:2012-03-13 12:50:20

标签: orm doctrine symfony

使用Symfony2和orm.yml文件将实体映射到数据库中如何在实体A,B,C之间创建3-ary关系,导致D表包含A_PrimaryKey,B_PrimaryKey,C_PrimaryKey之间的关系实体是这样的:

A-B很多人 A-C很多人 B-C manytomany

1 个答案:

答案 0 :(得分:0)

所以,你的基本模型看起来像这样:

A 1:n D
B 1:n D
C 1:n D

A的yml看起来像这样:

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.所以你更有可能在途中遇到错误!