我有活动模型,这个模型有演讲者和与会者,与会者和演讲者是应用程序中的用户。
我怎么能在LoopBack中用关系做到这一点?喜欢:与他的演讲者和与会者一起举办活动
以及如何将参加者分配给活动?
答案 0 :(得分:0)
活动可能有一个/多个发言者和许多与会者,因此事件关系应如下所示
event.json
"relations": {
"speakers": {
"type": "hasMany",
"model": "Speaker",
"foreignKey": ""
},
"attendees": {
"type": "hasMany",
"model": "Attendee",
"foreignKey": ""
}
}
演讲者属于一个事件:
speaker.json
"relations": {
"event": {
"type": "belongsTo",
"model": "Event",
"foreignKey": ""
}
}
最后一位与会者属于一个活动
attendee.json
"relations": {
"event": {
"type": "belongsTo",
"model": "Event",
"foreignKey": ""
}
}
将上述关系放在您的资源管理器中会为您提供新的端点,现在您可以使用POST方法为参与者指定一个参与者。
PS:不要创建参加者ID,因为idInjection为TRUE所以它会自动创建,只需分配eventId
{
"name": "string",
"id": "string",
"eventId": "string"
}
请注意,由于环回,您不必创建外键 仅在需要使用时才定位每个相关模型的默认ID 自定义的。
<强>更新强>
要使其适用于内置的 USER 模型,我们应该先扩展它。
要扩展用户模型,我们应该创建一个新模型:
slc loopback:model
创建模型后,编辑 config-model.json 并禁用内置的用户模型。
将此属性添加到User:"public": false
(这将禁止用户在资源管理器中显示)
"User": {
"dataSource": "MongoDs",
"public": false
}
在 event.json 中添加新用户模型
的关系"relations": {
"users": {
"type": "hasMany",
"model": "user",
"foreignKey": ""
}
}
将关系 user.json 添加到事件模型
"relations": {
"event": {
"type": "belongsTo",
"model": "Event",
"foreignKey": ""
}
现在您可以将用户分配给活动。但是,要分配发言人或与会者,您应该创建类似"type" : { "type": "string"}
的类型字段,该字段可以是"attendee"
/ "speaker"
要从您的活动模型中查找用户,请使用此过滤器:{include: 'users'}
功能中的find()
。