Boris Park
Boris Park

Reputation: 105

when i add record, how can i insert value of foreign key in Sequelize

I use sequelize ORM first time.

when i made models of table, i worked well so, i could see this in GUI database.

enter image description here

and this code is model of this 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;
};

but, when i add record like this,

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);

it makes problem, Except for the foreign key, the values are successful inserted to columns, but foreign key doesn't get value. it always has null like this picture.

enter image description here

How can i add value of foreign key in sequelize? :(

Upvotes: 0

Views: 752

Answers (1)

Anatoly
Anatoly

Reputation: 22768

I suppose you need to indicate field option in associations along with name:

foreignKey: {name : "model_id", field : "model_id", allowNull: true}

If it still does not work then try to define model_id explicitly in the request model

Upvotes: 1

Related Questions