Doctrine YML模式表示来自多个列的关系

时间:2011-11-15 10:41:29

标签: symfony1 doctrine schema yaml

我有以下字段的表格:

father_id child_id

他们两个都应该指向表“sfGuardUser”。我正在尝试在我的架构文件中定义这种关系,如下所示:

UsersHierarchy:
  tableName:                      users_hierarchy
  columns:
    father_id:                    {type: integer(9), primary: true}
    child_id:                     {type: integer(9), primary: true}
  relations:
    sfGuardUser:
      local:                      father_id
      foreign:                    id
    sfGuardUser:
      local:                      child_id
      foreign:                    id

但结果只有一列与sfGuardUser表相关。所以问题是如何让两个列指向sfGuardUser表中的同一列?

1 个答案:

答案 0 :(得分:2)

那是因为每个关系都有相同的名称。尝试:

relations:
    sfGuardUserFather:
      class:                      sfGuardUser
      local:                      father_id
      foreign:                    id
    sfGuardUserChild:
      class:                      sfGuardUser
      local:                      child_id
      foreign:                    id

然后您可以通过以下方式访问您的关系:

$your_users_hierarchy_obj->sfGuardUserFather;
$your_users_hierarchy_obj->sfGuardUserChild;