是否存在一个belongsToMany关联"/>
如何检查Sequelize中是否存在一个belongsToMany关联
我有两个模型,其关联定义如下
Product.belongsToMany(models.Disease, {through: 'DiseaseProduct'});
DiseaseProduct表是通过在此自动创建的,并具有两列DiseaseId
和ProductId
。
我已经经历过几次documentation,但是似乎无法正确运行hasDisease
函数来检查某种疾病是否与产品相关(它总是返回false)。但是,我可以执行以下操作,该命令可以正常运行。
var prod = await Product.findByPk(1);
prod.addDisease(1);
我想做的是检查疾病与以下类似产品的关联
var prod = await Product.findByPk(1);
prod.addDisease(1); //this runs correctly
prod.hasDisease(1); //the promise should resolve to true
我尝试过的
prod.hasDiseases(1);
prod.hasDiseases([1]);
回答如下:所以问题在于将字符串传递给prod.hasDisease()
函数。
当我通过如下所示的express中的请求变量将参数传递给此函数时>
prod.hasDisease(req.body.diseaseId);
尽管总是同时运行
prod.addDisease(req.body.diseaseId)
并没有问题并通过数据透视表关联疾病,但它总是返回false。
无论如何,解决方案是将字符串转换为数字,例如
prod.hasDisease(Number(req.body.diseaseId));
不敢相信我在此上浪费了4个小时!
更多推荐
如何检查Sequelize中是否存在一个belongsToMany关联
发布评论