sql >> Base de Datos >  >> RDS >> Mysql

Seleccione una secuencia de relación de muchos a muchos

No parece que haya definido la asociación de muchos a muchos entre alimentos e ingredientes. En resumen, debe agregar algo como esto a sus modelos:

Modelo de comida:

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

Modelo de ingredientes:

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

Luego, cuando desea consultar, no incluye el modelo "a través de", sino el otro modelo en la relación. En su caso:

Food.findAll({include: [
{
  model: Ingredients
}]}).then(responseWithResult(res)).catch(handleError(res));

Sequelize hará la unión por usted. Tenga en cuenta que si le da a su relación un alias, como:

Food.belongsToMany(Ingredients, {as 'someAlias', through: Food_ingredients});

Debe agregar ese alias en su inclusión:

Food.findAll({include: [
{
  model: Ingredients, as 'someAlias'
}]}).then(responseWithResult(res)).catch(handleError(res));