我有两个模型 Job 和 Contact。一个 Job 可以有多个 Contact。这是模态。
工作
module.exports = (sequelize, DataTypes) => {
const Job = sequelize.define("Job", {
job_name: DataTypes.STRING,
due_date: DataTypes.DATE,
assigned_hours: DataTypes.INTEGER,
descriptions: DataTypes.STRING
});
Job.associate = function(models) {
// associations can be defined here
Job.hasMany(models.Contact, { foreignKey: "job_id" });
};
return Job;
};
接触
module.exports = (sequelize, DataTypes) => {
const Contact = sequelize.define(
"Contact",
{
organization_name: DataTypes.STRING,
contact_person: DataTypes.STRING,
email: DataTypes.STRING,
phone: DataTypes.STRING,
// Group can only be either client,contact or contractor
group: DataTypes.STRING,
sub_group: DataTypes.STRING,
instruction: DataTypes.STRING
},
{}
);
return Contact;
};
在我的应用程序中,联系人是单独创建的,用户只需在创建工作时选择联系人。那么,我应该怎么做才能将已经创建的联系人与工作相关联?我已阅读文档,但无法获得清晰的图片。我应该做类似
newJob.setContacts
的事情吗?我需要传递整个联系人对象还是只传递联系人的 id ( newJob.setContacts(['1','2']
)?
最佳答案
首先,您的联系模型实际上甚至没有您用于 hasMany... job_id... 的外键列...这实际上是您要使用的多对多关系吗?一个职位可以有多个联系人,一个联系人可以属于多个职位吗???
关于sequelize.js - Sequelize 如何使用 hasMany 关联保存模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56586186/