我的案例模型中设置了多对多关系
Case.associate = function (models) {
Case.belongsToMany(models.ranger, {
through: 'case_rangers',
foreignKey: 'caseId',
otherKey: 'rangerId',
as: 'assignee',
timestamps: false,
scope: {
status: 'ASSIGNED'
}
});
};
现在,我正尝试在一种情况下添加受让人,这无法在数据透视表中存储其他列 查询
Case.findByPk(2).then((caseId2) => {
ranger.findByPk(1).then((helper) => {
caseId2.setAssignee(helper, {eta: "1 hr" });
})
});
就我而言,eta存储的是空值
答案 0 :(得分:-1)
根据set
在n:m关系中的文档,第二个参数是options
,为了设置其他属性,您需要传递options.through
,因此应调用:< / p>
caseId2.setAssignee(helper, { through: { eta: "1 hr" } });
。
编辑:
为了添加新的assignee
和caseId2
,您应该使用具有附加属性的addAssignee
方法:
caseId2.addAssignee(helper, { through: { eta: '1 hr' } });
这将在caseId2
和helper
之间创建新的关联,以及由through
参数指定的其他关系数据。