2016-03-25 15 views
6

Tôi có bảng tổng hợp này, biểu thị quan hệ nhiều đến nhiều với mô hình Người và Phim.Phần tiếp theo: Cách ánh xạ thuộc tính tùy chỉnh trong bảng tổng hợp

Pivot table schema

Vấn đề là tôi muốn để có được vai diễn này khi tôi gọi những bộ phim mà có được những người liên quan. Tôi cố gắng này, nhưng nó không hiển thị các vai trò:

models.Movie.findAll({ 
    include: [{ 
     model: models.Person, 
     as: 'persons', 
     through: {attributes: ["role"]} 
    }] 
}).then(function(movies) { 
    res.json(movies); 
}); 

Tôi có phải chỉ định một cái gì đó trong các mô hình cho role?

+0

bạn có nghĩ ra điều này không? –

+0

@MichaelSchinis Tôi thực sự đã làm, hãy xem câu trả lời của tôi bên dưới – Lucaribou

+0

hmm. Thú vị, cảm ơn! –

Trả lời

4

Cuối cùng tôi đã đạt được điều này bằng cách tạo mô hình cho bảng tổng hợp movie_person với thuộc tính role dưới dạng chuỗi.

var MoviePerson = sequelize.define("MoviePerson", { 
    role: DataTypes.STRING 
}, 
{ 
    tableName: 'movie_person', 
    underscored: true 
}); 

Sau đó, trong mô hình Movie tôi thêm này

Movie.belongsToMany(models.Person, { 
    through: models.MoviePerson, 
    foreignKey: 'movie_id', 
    as: 'persons' 
}); 

tôi phải làm một cái gì đó rõ ràng là tương tự như sau trong mô hình Person tôi và đó là nó!

Các vấn đề liên quan