我有一个表user和userGroups,并且userGroups和user之间存在hasAndBelongsToMany关系。如果我通过向其添加一个用户来更新userGroup,那么我想比较并找出在保存之前添加的新用户
module.exports = function (UserGroup, Model) {
UserGroup.observe('before save', async function (ctx, next) {
const userData = await UserGroup.find({
filter: {
where: {
id: ctx.currentInstance.id
}
},
include: {
relation: 'users',
scope: {
include: ['userGroups']
}
},
limit: 1
})
console.log(userData)
return next()
})
}
userData包括新修补的用户,而它应该只显示以前在该组中的用户
可以通过使用hasManyThrough关系(https://loopback.io/doc/en/lb3/HasManyThrough-relations.html)来解决此问题>
创建新的表成员资格,并添加在新用户添加到userGroup时捕获的钩子。
将用户添加到userGroup后,将创建新的成员资格。