Sequelize:如何映射数据透视表中的自定义属性
我有这个数据透视表,它代表了与模型Person和Movie的多对多关系。
事情是,当我打电话给那些关联人的电影时,我想得到这个angular色。 我尝试过,但没有显示angular色:
models.Movie.findAll({ include: [{ model: models.Person, as: 'persons', through: {attributes: ["role"]} }] }).then(function(movies) { res.json(movies); });
我是否必须在role
的模型中指定某些内容?
我终于成功地通过创buildrole
属性为string的数据透视表movie_person
的模型来实现这一点。
var MoviePerson = sequelize.define("MoviePerson", { role: DataTypes.STRING }, { tableName: 'movie_person', underscored: true });
然后在我的Movie
模型中添加了这个
Movie.belongsToMany(models.Person, { through: models.MoviePerson, foreignKey: 'movie_id', as: 'persons' });
我必须在我的Person模型中做类似于这个的东西,就是这样!