Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecione a sequência de relacionamento muitos-para-muitos


Não parece que você definiu a associação de muitos para muitos entre alimentos e ingredientes. Em resumo, você precisa adicionar algo assim aos seus modelos:

Modelo de comida:
Food.belongsToMany(Ingredients, { through: Food_ingredients});

Modelo de ingredientes:
Ingredients.belongsToMany(Food, { through: Food_ingredients});

Então, quando você quiser consultar, você não inclui o modelo "através", mas o outro modelo na relação. No seu caso:
Food.findAll({include: [
{
  model: Ingredients
}]}).then(responseWithResult(res)).catch(handleError(res));

Sequelize fará a junção para você. Observe que, se você der um alias ao seu relacionamento, como:
Food.belongsToMany(Ingredients, {as 'someAlias', through: Food_ingredients});

Você precisa adicionar esse alias no seu include:
Food.findAll({include: [
{
  model: Ingredients, as 'someAlias'
}]}).then(responseWithResult(res)).catch(handleError(res));