[英]Sequelize insert into join table (many-to-many)
我在 sequelize 中設置了兩個具有多對多關系的模型。 Sequelize 正確創建了連接表,但我無法插入其中。 我一直在研究文檔的這一部分: http : //docs.sequelizejs.com/en/latest/docs/associations/#creating-with-associations,但我無法根據他們的示例進行任何工作。 不幸的是,他們沒有多對多的例子。
接下來我嘗試使用 setModel 函數,這在續集代碼的深處產生了一個我無法弄清楚的錯誤。 該代碼如下。
我的兩個模型是 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
函數或關聯選項寫入連接表的正確軌道嗎? 我可以編寫一個自定義函數,但我知道一定有辦法做到這一點。
好吧,我用上面的setCoins
解決了這個問題。 顯然它需要 id 號而不是對象,所以這是有效的:
Ledger.findById(22).then(ledger=>{
ledger.setCoins([1,2]).then(sc=>{
console.log(sc);
});
});
不過,我仍然想更好地理解包含和關聯。
Sequelize 5+后, findById()
替換為findByPk()
Ledger.findByPk(22).then(ledger=>{
ledger.setCoins([1,2]).then(sc=>{
console.log(sc);
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.