我想知道在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
这是对的吗?
答案 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中没有那么好记录,但似乎有用。