在sequelize中,updateattributes方法只能更新表中的一个属性吗?

时间:2014-10-09 11:56:39

标签: node.js sequelize.js

我尝试(sequelize model)来更新表中的值,但它会更新表中唯一的一个值。检查下面的例子

employee.updateAttributes({first_name : value.first_name},
            {last_name : value.last_name},
            {email : value.email},
            {password : value.password},
            {phone : value.phone}
            ).on('success',function(employee){
    message.message = "Employee updated successfully";
    message.employee = employee;
    message.successMessage = "Success";
    callback(message);
})

3 个答案:

答案 0 :(得分:10)

您应该提供单个对象

employee.updateAttributes({
  first_name : value.first_name,
  last_name : value.last_name,
  email : value.email,
  password : value.password,
  phone : value.phone
})

答案 1 :(得分:1)

使用.update()代替.updateAttributes()

答案 2 :(得分:0)

以防其他任何人遇到此问题...因为这是第一个结果:确实,最新版本的sequelize没有updateAttribute(),但使用update()可以工作,但您无法通过如果您具有hasMany关联,则为数组。相反,您必须这样迭代:

user.Addresses.forEach((oldAddress, i) => {
    oldAddress.update(newAddresses[i])
});