2011-02-07 78 views
2

我有所谓的“对象”,这里的实体是YAML代码:Doctrine2一对多关系YAML

Entities\Object: 
    type: entity 
    table: objects 
    id: 
    id: 
     type: integer 
     generator: 
     strategy: AUTO 
    fields: 
    parent_id: 
     type : integer 
    oneToOne: 
    type: 
     targetEntity: ObjectType 
     joinColumn: 
     name: type_id 
     referencedColumnName: id 

我想补充一个孩子父母的关系(一对多),但我不知道怎么样?我希望mysql表具有以下结构:id,type_id,parent_id和具有这些选项的实体$ object-> getParent()(单个对象)和$ object-> getChildren()(对象集合)。 希望有人能帮助,日Thnx

+0

所以你需要一个自我引用的关系,比如电子商务网站中的一个类别可以有一个父类别和多个子类别? – Cobby 2011-02-07 11:21:43

+1

国际海事组织,你不应该太想它如何在数据库中看起来......只是让学说做它的事情! – Cobby 2011-02-07 11:22:43

回答

4

你正在试图做一个一对多的,自我参照,它应该是这样的:

Entities\Objects: 
    type: entity 
    table: objects 
    id: 
    id: 
     type: integer 
     generator: 
     strategy: AUTO 
    oneToMany: 
    children: 
     targetEntity: Objects 
     mappedBy: parent 
    manyToOne: 
    parent: 
     targetEntity: Objects 
     inversedBy: children 
     joinColumn: 
     name: parent_id 
     referencedColumnName: id 

看看手动Association Mapping