首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >序列化create with associations

序列化create with associations
EN

Stack Overflow用户
提问于 2019-01-23 15:59:28
回答 2查看 58关注 0票数 0

我一直在尝试定义3个表之间的关系,然后在一个create函数中创建它们。由于某些原因,在创建3个模型时,链接ID(外键)是未定义的,并且不会传递。以下是它们之间的关联:

Person.js:

代码语言:javascript
复制
models.person.Lead = models.person.hasMany(models.lead, {
      onDelete: "CASCADE",
      foreignKey: "person_id"
});

Lead.js:

代码语言:javascript
复制
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'
})

sealantCustomer.js:

代码语言:javascript
复制
models.sealant_customer.Lead = models.sealant_customer.belongsTo(models.lead);

构建函数:

代码语言:javascript
复制
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)。我还应该注意到,没有验证错误,数据也很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-21 17:04:53

据我所知,这个库在build函数中有一个bug。与create相同的语法可以完美地工作。

票数 0
EN

Stack Overflow用户

发布于 2021-08-06 11:55:08

在Sequelize v6中,include部分中的关联标识符无效。否则,这个构建函数应该可以正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54322453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档