【发布时间】:2017-03-02 07:16:36
【问题描述】:
我通过 UserDevice 连接表在 User 和 Device 模型之间建立了多对多关系:
device.belongsToMany(user, {
through: {
model: userDevice
},
foreignKey: "deviceId",
as: "customers"
});
user.belongsToMany(device, {
through: {
model: userDevice
},
foreignKey: "customerId",
as: "devices"
});
setCustomers: Sequelize.BelongsToManySetAssociationsMixin<UserInstance, string, UserDeviceAttribute>;
getCustomers: Sequelize.BelongsToManyGetAssociationsMixin<UserInstance>;
我可以找到设备并正确填充客户:
this.db.models.Device.findAll({
include: [{
model: User,
as: "customers"
}]
我不知道如何在其他情况下填充客户,即当我手动设置客户时。现在我正在尝试类似的东西:
return device.setCustomers(customers)
.then(() => {
return device.getCustomers();
})
.then((users) => {
device.setAttributes("customers", users);
return device;
});
但它不起作用,setAttributes 没有设置客户字段。
【问题讨论】:
标签: node.js typescript orm sequelize.js