为了解决您的模型 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 看起来像这样(请注意,您没有在“属性”中定义 userId 或 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 将自动为您创建一个连接模型。
在您的用户模型中:
"relations": {
"Hobbies": {
"type": "hasAndBelongsToMany",
"model": "Hobbie"
}
}
在你的爱好模型中:
"relations": {
"Users": {
"type": "hasAndBelongsToMany",
"model": "User"
}
}
如果您想在代码中执行此操作,您是正确的,有引导时序问题使这些关系不会出现在资源管理器中。我将很快添加另一个回复,向您展示如何使其工作。