2016-03-25 14 views
6

में एक कस्टम विशेषता को कैसे मैप करें, मुझे यह पिवट टेबल मिला है, जो मॉडलों और मूवी मॉडल के साथ कई रिश्तों को दर्शाता है।सीक्वेलिज़: पिवोट टेबल

Pivot table schema

बात मैं जब मैं फिल्मों है कि संबद्ध व्यक्तियों मिल फोन भूमिका प्राप्त करना चाहते है। मैं इस कोशिश की, लेकिन यह भूमिका प्रदर्शित नहीं करता है:

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

मैं role के लिए मॉडल में कुछ निर्दिष्ट करने के लिए है?

+0

क्या आपने इसे एक बार निकाला है? –

+0

@ माइकलस्चिनीस मैंने वास्तव में किया, – Lucaribou

+0

हम्म से नीचे मेरा जवाब देखें। दिलचस्प, धन्यवाद! –

उत्तर

4

मैं अंततः role स्ट्रिंग के रूप में विशेषता के साथ पिवट तालिका 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' 
}); 

मैं अपने व्यक्ति मॉडल में स्पष्ट रूप से इस के समान कुछ करने के लिए था और बस हो गया!

संबंधित मुद्दे