我有一个实例,我有用户和角色。我有以下几点:更新嵌套关联
var User = sequelize.define("Users", {
username: DataTypes.STRING,
password: DataTypes.STRING,
});
var Role = sequelize.define("Role", {
role: DataTypes.STRING
});
var UsersRole = sequelize.define("UsersRole");
User.belongsToMany(Role, {through: UsersRole});
与用户ID和角色ID列我创建一个数据库中的UsersRoles表。这一切工作正常,但现在我想能够更新用户角色,我不能解决如何做到这一点!我试着至今没有运气以下:
models.Users.findAll({
where: { id: req.params.id },
include: [{ all: true }]
}).then(function(dbUser){
dbUser[0].Roles[0].updateAttributes({
RoleId: req.body.role,
},
{
where: { UserId : req.params.id }
}
).then(function (result) {...
总之,所有我想做的就是能够改变一个用户的角色,所以更新“UsersRoles”表并更改角色ID给定用户标识。我似乎无法弄清楚如何通过任何续集语法来获取表格!
我可以写一些原始的SQL,但这不正确?
编辑
我只是想更新的用户角色,如果表中有:
| UserId | RoleId | ------------------- | 1 | 1 |
我希望能够将其改为:
| UserId | RoleId | ------------------- | 1 | 2 |
但我不能完全弄清楚这些代码!
一些注意事项:如果您只需要一个用户,请改用'findOne'或'findById'。另外,如果你不打算使用它们,则不需要“包含:全部” –