我有3个模型,民意调查,类别和poll_to_category。
poll.server.model.js
module.exports = function(sequelize, DataTypes) {
var Poll = sequelize.define('Poll', {
poll_id:{type:DataTypes.INTEGER,primaryKey:true}
},
{
associate: function(models){
Poll.hasOne(models.Caetgory, {through:models.PollToCategory)
}
}
);
return Poll;
};
category.server.model.js
module.exports = function(sequelize, DataTypes) {
var Category = sequelize.define('Category', {
category_id:{type:DataTypes.INTEGER, primaryKey:true}
},
{
associate: function(models){
Category.hasMany(models.Poll, {through:models.PollToCategory)
}
}
);
return Category;
};
poll_to_category.server.model.js
module.exports = function(sequelize, DataTypes) {
var PollToCategory = sequelize.define('PollToCategory', {
ptc_id:{type:DataTypes.INTEGER,primaryKey:true},
poll_id:DataTypes.INTEGER,
category_id:DataTypes.INTEGER
},
{
associate: function(models){
PollToCategory.belongsTo(models.Poll, {foreignKey:'poll_id'}),
PollToCategory.belongsTo(models.Category, {foreignKey:'category_id'})
}
}
);
return PollToCategory;
};
当我尝试查询
时db.Poll.findAll({include:db.Category}).then(function(polls,err){
if (err) return res.status(400).send({message: errorHandler.getErrorMessage(err)});
res.jsonp(polls);
});
我收到以下错误:
Possibly unhandled Error: ER_BAD_FIELD_ERROR: Unknown column 'category.poll_id' in 'field list'
我尝试使用3之间的belongsTo / hasOne配置但是我得到了上述错误,或者我没有得到任何错误,但我收到了属性'类别' as' null'。我对sequelize.js很新,我不确定如何提出这个问题(术语明智)。
关于上面的表格结构,我怎样才能将类别加载到民意调查?
答案 0 :(得分:1)
您需要为第三个表名提供别名。像这样:
associate: function(models){
Poll.hasOne(models.Caetgory, {through:models.PollToCategory, as 'PollToCategory')
}
但正确的方法是让sequelize创建第三个实体。为此,您需要在别名中插入别名并设置固定的“通过”名称,然后续集为您创建它。
答案 1 :(得分:0)
我知道我参加晚会很晚,但需要澄清的是:您没有3个型号。您有两个模型:Poll
和Category
。 PollToCategory
是两个模型之间的belongsToMany
关联。