我有一个Loopback API,用户是一个基类为User的模型。
我还有另一个名为参与者的模型。这表示已注册参加活动的用户。
我希望此参与者需要对用户(外键)的引用。我也想要它,以便用户只能创建一个参与者。最后,当用户创建参与者时,它必须引用用户自己的ID。我该怎么设置呢?
答案 0 :(得分:0)
这似乎与我的标准一对一连接。为此,Loopback提供HasOne和BelongsTo关系。
根据您的方案,您可以按如下方式定义Participant和MyUser:
MY-user.json
{
"name": "MyUser",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {},
"remoting": {
"normalizeHttpPath": true
},
"validations": [],
"relations": {
"participant": {
"type": "hasOne",
"model": "Participant",
"foreignKey": "userId"
}
},
"acls": [],
"methods": {},
"mixins": {}
}
participant.json
{
"name": "Participant",
"base": "PersistedModel",
"idInjection": true,
"properties": {},
"validations": [],
"relations": {
"user": {
"type": "belongsTo",
"model": "MyUser",
"foreignKey": "userId"
}
},
"acls": [],
"methods": {}
}
然后你就可以为你的MyUser创建一个参与者:
POST /my-users/{id}/participant
如果您尝试为此MyUser实例创建另一个Participant实例,则会出现以下错误:
错误(500):HasOne关系无法创建多个参与者实例