我有用户和品牌模型。
用户可以拥有多个品牌。
品牌可以属于许多用户。
我为多对多关联定义了另一个模型。它命名为 UserBrand 。
// user.js
const User = sequelize.define('User', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
hasBrand: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
})
User.associate = models=> {
User.belongsToMany(models.Brand, {
through: models.UserBrand,
foreignKey: 'user',
})
}
// brand.js
Brand.belongsToMany(models.User, {
through: models.UserBrand,
foreignKey: 'brand',
})
// userBrand.js
const UserBrand = sequelize.define('UserBrand', {
status: {
type: DataTypes.INTEGER,
allowNull: false,
},
title: {
type: DataTypes.STRING,
defaultValue: '',
},
})
UserBrand.associate = models=> {
UserBrand.belongsTo(models.User, { foreignKey: 'user', targetKey: 'id' })
UserBrand.belongsTo(models.Brand, { foreignKey: 'brand', targetKey: 'id' })
}
当我运行我的应用程序时,它会显示TypeError: Cannot read property 'hasBrand' of undefined
。我找不到 hasBrand 和 association 之间的任何关系,但删除 hasBrand 它的工作原理
如果我仍想保留 hasBrand 字段,我该如何解决?