添加记录时,如何在 Sequelize 中插入外键值
when i add record, how can i insert value of foreign key in Sequelize
第一次使用sequelize ORM
当我制作 table 的模型时,我工作得很好,我可以在 GUI 数据库中看到它。
并且此代码是此 table
的模型
const Sequelize = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class request extends Sequelize.Model {
static associate(models) {
models.request.belongsTo(models.model, {foreignKey: {name : "model_id", allowNull: true}})
models.request.belongsTo(models.user, {foreignKey: {name : "user_id", allowNull: true}})
models.request.hasOne(models.appraisal, {foreignKey: "request_id"})
}
};
request.init({
request_id : {
type: Sequelize.INTEGER(11),
allowNull: false,
unique : true,
autoIncrement: true,
primaryKey: true,
},
request_time : {
type : Sequelize.DATE,
},
image_folder : {
type : Sequelize.STRING(64)
},
image_file : {
type : Sequelize.STRING(256)
},
result : {
type : Sequelize.STRING(8)
},
result_value : {
type : Sequelize.INTEGER(8)
},
product_image : {
type : Sequelize.STRING(64)
}
}, {
sequelize,
timestamps: true,
underscored: false,
modelName: 'request',
tableName: 'request',
paranoid: false,
charset: 'utf8',
collate: 'utf8_general_ci',
freezeTableName: true,
tableName: "request"
});
return request;
};
但是,当我这样添加记录时,
const request = new db.request();
let data = {
request_time : date,
image_folder : path,
image_file : filesName,
result : resultBool,
result_value : resultValue,
product_image : "8.jpg",
model_id : 1,
user_id : 1
}
db.request.create(data);
问题来了,除了外键,值都成功插入到列中,但是外键没有取值。它总是像这张图片一样为空。
如何在sequelize中添加外键的值? :(
我想您需要在关联中指明 field
选项以及 name
:
foreignKey: {name : "model_id", field : "model_id", allowNull: true}
如果仍然无效,则尝试在 request
模型中明确定义 model_id
第一次使用sequelize ORM
当我制作 table 的模型时,我工作得很好,我可以在 GUI 数据库中看到它。
并且此代码是此 table
的模型
const Sequelize = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class request extends Sequelize.Model {
static associate(models) {
models.request.belongsTo(models.model, {foreignKey: {name : "model_id", allowNull: true}})
models.request.belongsTo(models.user, {foreignKey: {name : "user_id", allowNull: true}})
models.request.hasOne(models.appraisal, {foreignKey: "request_id"})
}
};
request.init({
request_id : {
type: Sequelize.INTEGER(11),
allowNull: false,
unique : true,
autoIncrement: true,
primaryKey: true,
},
request_time : {
type : Sequelize.DATE,
},
image_folder : {
type : Sequelize.STRING(64)
},
image_file : {
type : Sequelize.STRING(256)
},
result : {
type : Sequelize.STRING(8)
},
result_value : {
type : Sequelize.INTEGER(8)
},
product_image : {
type : Sequelize.STRING(64)
}
}, {
sequelize,
timestamps: true,
underscored: false,
modelName: 'request',
tableName: 'request',
paranoid: false,
charset: 'utf8',
collate: 'utf8_general_ci',
freezeTableName: true,
tableName: "request"
});
return request;
};
但是,当我这样添加记录时,
const request = new db.request();
let data = {
request_time : date,
image_folder : path,
image_file : filesName,
result : resultBool,
result_value : resultValue,
product_image : "8.jpg",
model_id : 1,
user_id : 1
}
db.request.create(data);
问题来了,除了外键,值都成功插入到列中,但是外键没有取值。它总是像这张图片一样为空。
如何在sequelize中添加外键的值? :(
我想您需要在关联中指明 field
选项以及 name
:
foreignKey: {name : "model_id", field : "model_id", allowNull: true}
如果仍然无效,则尝试在 request
模型中明确定义 model_id