2017-03-19 56 views
2

我在具有多对多关系的连续集中设置了两个模型。 Sequelize正确创建了连接表,但我无法插入它。我一直在阅读文档的这一部分:http://docs.sequelizejs.com/en/latest/docs/associations/#creating-with-associations,但根据他们的示例,我无法获得任何工作。不幸的是,他们没有多对多的例子。将连接插入到连接表中(多对多)

接下来我尝试使用setModel函数,这是从深层次的sequelize代码中产生一个错误,我无法弄清楚。该代码如下。

我的两个模型是Coin和Ledger。

Ledger.findById(22).then(ledger=>{ 
    var c1 = Coin.findById(1); 
    var c2 = Coin.findById(2); 
    ledger.setCoins([c1,c2]).then(sc=>{ 
     console.log(sc); 
    }); 
}); 

我的模型使用此代码的相互关系:

Ledger.belongsToMany(Coin,{ through: 'ledger_coin'}); 
Coin.belongsToMany(Ledger, {through: 'ledger_coin'}); 

任何人都可以给我一些建议或点我在正确的轨道上要么使用get功能或关联选项写到连接表?我可以写一个自定义函数,但我知道必须有一种方法来实现它。

回答

5

那么,我解决了上述问题setCoins。显然,它需要的ID号,而不是对象,所以这个工程:

Ledger.findById(22).then(ledger=>{ 
    ledger.setCoins([1,2]).then(sc=>{ 
     console.log(sc); 
    }); 
}); 

我还是想了解包括和协会更好,虽然。