sql >> Databáze >  >> RDS >> Mysql

Vyberte si ze sequelize vztahu many-to-many

Nezdá se, že byste definovali spojení mezi jídlem a přísadami. Stručně řečeno, musíte ke svým modelům přidat něco takového:

Model jídla:

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

Model složení:

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

Když se pak chcete dotazovat, nezahrnete do vztahu model „přes“, ale druhý model. Ve vašem případě:

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

Sequelize udělá spojení za vás. Všimněte si, že pokud svému vztahu dáte alias, například:

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

Tento alias musíte přidat do svého include:

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



  1. Jak zkontrolovat, zda existuje tabulka v SQLite

  2. SQL dotaz pro získání všech produktů, kategorií a metadat woocommerce/wordpress

  3. Přidání spojení MySql dává nesprávné výsledky

  4. Přiřazení obrázků k uzlům stromového zobrazení