我的代码的主要思想是创建一个搜索字段,其中有两个多对多字段,并且我想将多对多表的搜索绑定
我想选择表modelos内的modelos.nome_modelo_produto字段,但是它永远无法工作,因为即使我提到了表之间的关系,续集也无法识别该字段:
Modelo.belongsToMany(Produto, {through: 'ProdutosModelos'});
Produto.belongsToMany(Modelo, {through: 'ProdutosModelos'});
搜索的想法是这样的...
Table.findAll({
where: {
[Db.Sequelize.Op.or]: [
{'nome_produto': Db.sequelize.where(Db.sequelize.fn('LOWER', Db.sequelize.col('nome_produto')), 'LIKE', '%' + req.query.search + '%')},
{'$modelos.nome_modelo_produto$': Db.sequelize.where(Db.sequelize.fn('LOWER',Db.sequelize.col('$modelos.nome_modelo_produto$')), 'LIKE', '%' + req.query.search + '%')}
]
}
})
但是不行...
有人可以帮助我或给我前进的方式吗?
最佳答案
如果有人遇到此错误,我已经检查过,当您在内部使用限制或偏移标签时,有一个我无法解决的令人讨厌的错误。
因此,我要提示的是删除偏移量和限制,并重命名表列以仅按名称查找,例如,如果表中的东西具有字段标记,则可以将标记字段重命名为Things_tags,如果它是一个关系字段,那么当您在内部设置字段时,只能插入没有表名的字段名。