我正在用express构建一个应用程序,并使用bookshelf(mysql)js作为orm。我有一个多对多的关系,我试图在连接表中存储一些额外的数据。
我的模型:
const Product = Bookshelf.Model.extend({
tableName: 'products',
factors() {
return this.belongsToMany('Factor', 'product_factors', 'product_id', 'factor_id')
}
})
const Factor = Bookshelf.Model.extend({
tableName: 'factors',
products() {
return this.belongsToMany('Product')
}
})
在“产品系数”表中创建具有关系的新产品。
/**Create product */
router.route('/').post((req, res) => {
new Product({name: req.body.name})
.save()
.then(product => {
// attaching relation
product.factors().attach([3, 5])
.then(hz => {
res.status(201).json({
message: 'Product created'
})
})
})
})
“产品系数”表
|ID|product_id|factor_id|quantity|
|--|----------|---------|--------|
|1 |10 |3 |NULL |
|2 |10 |5 |NULL |
如何在附加关系的同时插入数量?
1条答案
按热度按时间3zwjbxry1#
文档中有一个如何在
model.belongsToMany()
部分。为方便起见,这里是:正如你在照片中看到的
Doctor
以及Patient
模型必须使用.belongsToMany(Model).through(AnotherModel)
. 那就是使用attach()
,detach()
,updatePivot()
以及withPivot()
方法来处理数据。另外,由于您正在定义联接模型,因此还可以直接使用它来访问和修改相关表包含的数据。例如:
或