我有这个数据透视表,它表示与人物和电影模型的多对多关系。
事情是,当我打电话给那些让人联系起来的电影时,我想得到这个角色。我尝试了这个,但它没有显示角色:
role
我是否必须在模型中为name
?
答案 0 :(得分:5)
我终于设法通过为movie_person
属性作为字符串创建数据透视表role
的模型来实现此目的。
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模型中做一些与此类似的事情,就是这样!
答案 1 :(得分:0)
对于那些将需要此工具的人,有一种称为“魔术方法”的新方法。我相信您已经宣布了您的多对多协会
const movies = Movie.findAll();
const person = Person.findbyPk(personId);
const moviesPerson = movies.getPersons(person);