我有两个表(用户,标签)通过联接实体(user_tag)以belongsToMany关系彼此连接:

sequelize.define('tag', {
    id: {
      type: DataTypes.INTEGER,
      autoIncrement: true,
      primaryKey: true
    },
    type: {
      type: DataTypes.STRING
    }
  }, {
       classMethods: {
            associate: function (models) {
            this.belongsToMany(models.user, {as: "users", through: models.user_tag });
  },
  }


}

sequelize.define('user', {
    id: {
      type: DataTypes.INTEGER,
      autoIncrement: true,
      primaryKey: true
    },
    name: {
      type: DataTypes.STRING,
    },{
    classMethods: {
        associate: function (models) {
         this.belongsToMany(models.tag, { as:"tags", through: models.user_tags });
        }
    }
}


sequelize.define('user_tag', {
    type: DataTypes.STRING,
    param1: DataTypes.INTEGER,
    priority: DataTypes.INTEGER
  }, {
    freezeTableName: true,
    paranoid: true
  });


现在,用户可以更新他的所有标签,包括有关连接实体(user_tag)的所有特定信息,例如priority和param1。

我知道setAssociation [例如user.setTag(myTags)],但是,如何设置匹配的param1和优先级属性?

最佳答案

根据Sequelize's documentation,当添加与belongsToMany的新关系时,可以将其他属性传递给选项对象,并且该数据将被添加到直通模型中。

user.setTag(myTags, { param1: 1, priority: 1 });

10-06 08:51
查看更多