添加记录时,如何在 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