学说固定装置 - 循环参考

时间:2010-09-23 11:47:01

标签: symfony1 schema doctrine fixtures

有没有办法加载具有循环引用的灯具?作为一个例子,我有以下夹具:

BusinessEntityTeam:
  Nicole_Team:
    name: Nicole's Team
    Manager: [Nicole]
    Business: [ACMEWidgets]

sfGuardUser
  Nicole:
    first_name:     Nicole
    last_name:      Jones
    email_address:  nicole@example.com
    username:       nicole
    password:       nicole
    Groups:         [Group_abc]
    Team:           [Nicole_Team]

正如你所看到的,Nicole_Team引用了Nicole ......但Nicole也引用了Nicole_Team。

当Manager不是必需列时,这是正常的(夹具已加载,但Manager为NULL),但现在要求加载夹具是不可能的。

我能看到的唯一解决方法是将Team关系放在自己的对象中(例如'Profile'),这样关系就不再是循环的了。

还有其他方法吗?每个用户都必须在一个团队中,但只有少数用户是团队经理。我对我的数据模型设计糟糕并有改进余地这一事实持开放态度。

1 个答案:

答案 0 :(得分:1)

这个怎么样:

BusinessEntityTeam:
  Nicole_Team:
    name: Nicole's Team
    Business: [ACMEWidgets]

sfGuardUser
  Nicole:
    first_name:     Nicole
    last_name:      Jones
    email_address:  nicole@example.com
    username:       nicole
    password:       nicole
    Groups:         [Group_abc]
    Team:           [Nicole_Team]
    ManagerFor:     [Nicole_Team]

为了避免循环引用,您必须将关系放在一个模型中。