我有一个角色表和一个权限表。角色具有许多权限,权限属于许多角色,因此属于许多关联。关联是通过'role_permission',但我没有明确创建模型。
角色的模型
role.associate = (models) => {
role.belongsToMany(models.permission, { through: 'role_permission' })
}
许可的模型
permission.associate = (collection) => {
permission.belongsToMany(collection.role, { through: 'role_permission' })
}
根据文档,我获得 setPermissions , getPermissions 方法,但我想在更新角色时更新与角色相关的权限。我怎样才能做到这一点。下面是创建角色的代码,但更新角色(更新权限)将如何?
创建角色的代码
return collection
.sequelize
.transaction((transaction) => {
return collection
.role
.create({name, active},{transaction})
.then(role => {
return role.setPermissions(permissions)
},{transaction});
})
更新角色的代码失败
collection
.sequelize
.transaction((transaction) => {
return collection
.role
.update({
name,
active
}, {
fields: [
'name', 'active'
],
where: {
id: data.id
}
}, { transaction })
.then((response) => {
// ???
// "role" table is updated
// but how to update "role_permission" table
})
})