2
Sequelize刪除我的外鍵中的下劃線。下劃線被刪除
Role.belongsToMany(User, { foreignKey: 'user_id', through: UserRole });
結果在此:
Unknown column 'UserRole.UserId' in 'field list'
因爲列被命名爲USER_ID,而不是用戶ID。
即使設置了underscore: true
選項,它也會這樣做。
有沒有解決這個問題的方法,它讓我發瘋,因爲我不知道我做錯了還是續集。
UserRole.js:
module.exports = {
attributes: {
roleId: {
type: Sequelize.INTEGER(11),
field: 'role_id',
primaryKey: true
},
userId: {
type: Sequelize.INTEGER(11),
field: 'user_id',
primaryKey: true
}
},
associations: function() {
UserRole.belongsTo(User, { foreignKey: 'user_id' });
UserRole.hasOne(Role, { foreignKey: 'id' });
},
options: {
tableName: 'user_roles',
timestamps: false,
classMethods: {},
instanceMethods: {},
hooks: {}
}
}
Role.js
module.exports = {
attributes: {
id: {
type: Sequelize.INTEGER(11),
primaryKey: true
},
name: {
type: Sequelize.STRING(50),
},
description: {
type: Sequelize.STRING(50),
},
},
associations: function() {
Role.belongsToMany(User, { foreignKey: 'user_id', through: UserRole });
},
options: {
tableName: 'roles',
timestamps: false,
classMethods: {},
instanceMethods: {},
hooks: {}
}
}
你確定你已經嘗試打開'underscore'選項嗎?我在這裏看不到你的代碼,這很重要。 – tadman
@tadman我應該睡覺了,忘了將'underscored'選項添加到用戶模型中。非常感謝! – Joery
發生在我們身上。很高興你得到它! – tadman