我正在使用sequelize v3.11.0并使用MySQL DB航行v0.11.0。
我有我的模特/ User.js
module.exports = {
attributes: {
firstName: {
type: Sequelize.STRING,
allowNull: false,
field:'first_name'
},
lastName: {
type: Sequelize.STRING,
field:'last_name'
},
phone: {
type: Sequelize.STRING
}
}
}
模型/ Category.js
module.exports = {
attributes: {
name: {
type: Sequelize.STRING,
allowNull:false,
unique:true,
},
description: {
type: Sequelize.STRING
}
}
}
模型/ UsersCategory.js
module.exports = {
attributes: { },
options: {
tableName: 'user_categories'
},
associations: function() {
User.belongsToMany(Category, {
through: UsersCategory,
foreignKey: {
name:'userId',
field:'user_id'
}
});
Category.belongsToMany(User, {
through: UsersCategory,
foreignKey: {
name:'categoryId',
field:'category_id'
}
});
}
};
但当我执行此代码时,在我的数据库user_categories表中,我将该属性设为:
category_id,userId
我不知道为什么userId在camelcase中。
当我在做的时候:
User.findAll({
include: [
{all:true}
]
})
我收到错误:
“'on子句'中的ER_BAD_FIELD_ERROR:未知列'Categories.UsersCategory.user_id'”
但如果我在UserCategory模型中使用userId和CategoryId,那么它工作正常。
在多对多关联中,字段是否存在问题?