sequelize中的更新关联属于许多

时间:2017-08-17 10:58:14

标签: javascript sql-server sequelize.js

我有一个角色表和一个权限表。角色具有许多权限,权限属于许多角色,因此属于许多关联。关联是通过'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
            })
    })

0 个答案:

没有答案