我有一個實例,我有用戶和角色。我有以下幾點:更新嵌套關聯
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'。另外,如果你不打算使用它們,則不需要「包含:全部」 –