Loopback hasOne和hasMany相同的型号

时间:2015-12-06 17:12:02

标签: javascript node.js loopbackjs strongloop

我试着做一个家谱。我有模特familyMember,应该有两个关系。 首先是配偶,第二是孩子。现在我尝试了:

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

但是当我创造一个孩子并且在配偶之后它返回:

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

当我请求配偶时,它会归还我之前做过的孩子。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

根据我从您的问题中了解到,您有一个模型CREATE OR REPLACE FUNCTION select_from_products() RETURNS TABLE (colorid int, name text, abbr text) LANGUAGE plpgsql as $$ DECLARE v_colorid INT; BEGIN v_colorid := 3; RETURN QUERY SELECT *, substring(p.name,1,3) FROM products p WHERE p.colorid = v_colorid; END $$; SELECT * FROM select_from_products(); ,并且您正在引用与关系familyMembers和{相同模型的属性childrenspouse分别为{1}}。

它不是实现你想要通过环回的最佳方式。它有可能出错。

最好的方法是首先通过环回创建模型hasMany

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

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

了解更多信息。 Extending a model in loopback