我有 2 个模型:Users
和 Doctors
,其中 Doctors
模型具有 belongsTo()
约束用户
。
module.exports = (sequelize, DataTypes) => {
const Doctors = sequelize.define('Doctors', {
specialization: { type: DataTypes.STRING }
})
Doctors.associate = function (models) {
Doctors.belongsTo(models.Users)
}
return Doctors
}
外键
出现在我的数据库中,并且CREATE TABLE
正确完成,但是
const newDoctor = await Doctors.create({
specialization: req.body.specialization,
Users: {
firstname: firstname,
lastname: lastname,
email: email,
password: password
}
}, { include: Users })
发送请求后,会在 Doctors
表中添加,但不会在Users
表中添加> 表。
值得一提的是,所有关系都在另一个文件中完成,并且一切正常。
关于如何实现这项工作有什么想法吗?
编辑:需要明确的是,用户表没有被填充,但医生却被填充了。
最佳答案
有时,Sequelize 需要您在关联上指定别名。
Doctors.belongsTo(models.Users, { as: '用户' })
在创建时,您还可以添加别名。
const newDoctor = await Doctors.create({
specialization: req.body.specialization,
Users: {
firstname: firstname,
lastname: lastname,
email: email,
password: password
}
}, { include: { model: Users, as: 'Users'} }).
别名和对象上的名称必须相同。
关于javascript - Sequelize 仅在子表中插入(关联 : belongsTo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56008548/