Loopback hasOne 和 hasMany 同型号

Loopback hasOne and hasMany of the same model

我试着做一个家谱。我有一个模型 familyMember,它应该与它自己有两个关系。 首先是配偶,其次是children。现在我尝试了:

"relations": {
  "spouse": {
    "type": "hasOne",
    "model": "familyMember",
    "foreignKey": "familyMemberId"
  },
  "children": {
    "type": "hasMany",
    "model": "familyMember",
    "foreignKey": "familyMemberId"
  }
}

但是当我创建一个 children 并在配偶之后 returns:

{
  "error": {
    "name": "Error",
    "status": 500,
    "message": "HasOne relation cannot create more than one instance of familyMember"
  }
}

当我要求配偶时 returns 我以前做过的children。

我该如何解决这个问题?

根据我从你的问题中了解到你有一个模型 familyMembers 并且你指的是同一模型的 属性 childrenspouse 作为关系 hasManyhasOne 分别。

这不是实现您试图通过环回获得的目标的最佳方式。它有可能出错。

最好的方法是先通过环回创建一个模型FamilyMember

然后通过继承基础familyMember模型创建两个不同的模型childrenspouse以及其他相关成员模型。

然后轻松添加这些模型之间的关系。

阅读更多信息。 Extending a model in loopback