我一直在尝试定义 3 个表之间的关系,然后在一个创建函数中创建它们。出于某种原因,在创建 3 个模型时,链接 ID(外键)未定义且不会传递。以下是协会:
人物.js:
models.person.Lead = models.person.hasMany(models.lead, {
onDelete: "CASCADE",
foreignKey: "person_id"
});
铅.js:
models.lead.Person = models.lead.belongsTo(models.person, {foreignKey: 'person_id'});
models.lead.Sealant_customer = models.lead.hasOne(models.sealant_customer, {
onDelete: "CASCADE",
foreignKey: 'lead_id'
})
密封剂Customer.js:
models.sealant_customer.Lead = models.sealant_customer.belongsTo(models.lead);
构建函数:
let sealantCustomer = models.sealant_customer.build({
address: body.address,
city: body.city,
roof_size: body.roofSize,
last_sealed: body.lastSealed,
existingSealant: body.existingSealant,
leaks_freq: body.leaksFrequency,
floor: body.floor,
elevator: body.elevator,
panels: body.panels,
home_type: body.homeType,
urgency: body.urgency,
next_step: body.nextStep,
more_info: body.moreInfo,
lead: {
site,
url: body.url,
date,
ip: body.ip,
person: {
name: body.name,
email: body.email,
phone: body.phone,
date,
city: body.city ? body.city : undefined,
address: body.address ? body.address : undefined,
}
}
}, {
include: [{
model: models.lead,
association: models.sealant_customer.Lead,
include: [{
model: models.person,
association: models.lead.Person
}]
}]
})
输出的对象很好,除了lead_id 和person_id 是空值(每个模型都有自己的ID,但没有关联模型的ID)。我还应该注意没有验证错误并且数据很好。
最佳答案
据我所知,该库在构建函数中存在错误。与 create 相同的语法完美地工作。
关于mysql - Sequelize 创建关联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54322453/