学说:在夹具中定义内联的多对多关系

时间:2011-04-08 07:29:48

标签: symfony1 doctrine foreign-key-relationship fixtures

我想知道在Doctrine Fixture中内联定义多对多关系的正确方法。例如,考虑sfDoctrineGuardPlugin。可以找到架构here

我正在定义一个像: 我已经在sfGuardGroup表中有两个组,所以我希望引用group_id

sfGuardUser:
  soc-sfUser-1:
    first_name: Mrs
    last_name: Balasubramanium
    email_address: balasubramanium@gmail.com
    username: balasubramanium@gmail.com
    password: admin
    Groups: [{group_id: 2}]
    is_active: 1

这是对的吗?

1 个答案:

答案 0 :(得分:1)

如果您还要在该灯具中定义组,则可以按名称引用它们:

sfGuardGroup:
  GroupAdmin:  ...
  GroupEditor:  ...

sfGuardUser:
  ...
  Groups: [GroupEditor]

如果你想指定一个实际的ID,你应该这样写:

sfGuardUser:
  foo:
    first_name:     Foo
    last_name:      Bar
    ...
    sfGuardUserGroup: [{group_id: 2}]

为什么呢?如果您查看sfDoctrineGuardPlugin的schema.yml文件,您可以在refClass关系中看到sfGuardUser属性:

relations:
  Groups:
    ...
    refClass: sfGuardUserGroup

这有点棘手,在Doctrine中没有那么好记录,但似乎有用。