要解决模型JSON中的问题,我将在下面概述解决方案。但是,使用“hasAndBelongsToMany”关系可以更简单地解决您的问题,我也会在下面概述。
在您User.json:
"relations": {
"Hobbies": {
"type": "hasMany",
"model": "Hobbie",
"through": "UserHobbie",
"foreignKey": "hobbieId"
}
}
在您Hobbie.json:
"relations": {
"Users": {
"type": "hasMany",
"model": "User",
"through": "UserHobbie",
"foreignKey": "userId"
}
}
你UserHobbie.json是这样的(请注意,你不中定义用户名字和hobbieId“属性“:
{
"name": "UserHobbie",
"plural": "UserHobbies",
"base": "PersistedModel",
"properties": {
"id": {
"type": "String",
"id": true
}
},
"validations": [],
"relations": {
"Users": {
"type": "belongsTo",
"model": "User",
"foreignKey": "userId"
},
"Hobbies": {
"type": "belongsTo",
"model": "Hobbie",
"foreignKey": "hobbieId"
}
},
"acls": [],
"methods": []
}
这更简单的方式做到这一点如下:
不要明确创建UserHobbies模型。 Loopback会自动为你创建一个Join模型。
在你的用户模型:
"relations": {
"Hobbies": {
"type": "hasAndBelongsToMany",
"model": "Hobbie"
}
}
在你霍型号:
"relations": {
"Users": {
"type": "hasAndBelongsToMany",
"model": "User"
}
}
如果你想这样做的代码,你是正确的,也有认为保持这种关系引导时间问题从资源管理器中出现。我将尽快添加另一个答案,向您展示如何完成这项工作。
谢谢!你是否以某种方式与StrongLoop相关?因为,在这种情况下,我希望你添加回答[hasManyThrough]中的文档(http://docs.strongloop.com/display/LB/HasManyThrough+relations)和[hasAndBelongToMany](http://docs.strongloop.com/display/LB/HasAndBelongsToMany+关系)部门离子,它不具有与这些关系的代码定义类似的json。 – amenadiel 2014-09-30 18:30:24
我们将尽快做到这一点...这是代码/ JSON示例问题很常见,我们将继续努力...感谢您让我过去... – tonyStrong 2014-09-30 18:40:14
尊敬的@ tonyStrong,如果我经历第二个解决方案...我没有用户中的hobbieId,也没有Hobbies中的userId ...怎么可能自动创建一个联接模型? – amenadiel 2014-10-08 15:52:21