Loopback v3 关系用户模型和其他模型结构
Loopback v3 relation users model and other model structure
我有 Events 模型,这个模型有 Speakers 和 Atttees,Atttendees 和 Speakers 是应用程序中的用户。
如何使用 LoopBack 中的关系来实现?喜欢:与他的演讲者和与会者一起参加活动
以及如何将参加者分配给活动?
一个活动可能有 one/Many 位演讲者和许多与会者,因此活动关系应该如下所示
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"
}
Note that you don't have to create a foreign key since loopback will
target the default id of each related model only if you need to use
custom ones.
更新
要让它在内置的 USER 模型上工作,我们应该先扩展它。
要扩展用户模型,我们应该创建一个新模型:
slc loopback:model
- 将其命名为 user(小写),因为 loopback 使用的是 User,或者选择任何其他名称作为 customUser 或其他名称。
- Select 你的数据源
- Select User 模型的基础 class 这将覆盖内置的 User 模型
- 通过 REST API 公开:(是或否)如您所愿
创建模型后,编辑 config-model。json 并禁用内置用户模型。
将此 属性 添加到用户:"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()
函数中。
我有 Events 模型,这个模型有 Speakers 和 Atttees,Atttendees 和 Speakers 是应用程序中的用户。
如何使用 LoopBack 中的关系来实现?喜欢:与他的演讲者和与会者一起参加活动
以及如何将参加者分配给活动?
一个活动可能有 one/Many 位演讲者和许多与会者,因此活动关系应该如下所示
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"
}
Note that you don't have to create a foreign key since loopback will target the default id of each related model only if you need to use custom ones.
更新
要让它在内置的 USER 模型上工作,我们应该先扩展它。
要扩展用户模型,我们应该创建一个新模型:
slc loopback:model
- 将其命名为 user(小写),因为 loopback 使用的是 User,或者选择任何其他名称作为 customUser 或其他名称。
- Select 你的数据源
- Select User 模型的基础 class 这将覆盖内置的 User 模型
- 通过 REST API 公开:(是或否)如您所愿
创建模型后,编辑 config-model。json 并禁用内置用户模型。
将此 属性 添加到用户:"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()
函数中。