簡體   English   中英

如何從序列化關聯模型中獲得價值?

[英]How can I get value from sequelize associated model?

我仍然試圖從關聯的菜單模型中獲取menu_title到json。 如果我使用下面描述的代碼控制台, ER_BAD_FIELD_ERROR: Unknown column 'Products.MenuId' in 'field list'向我顯示錯誤ER_BAD_FIELD_ERROR: Unknown column 'Products.MenuId' in 'field list'如果我已經定義了{foreignKey: 'menu_id'}那么ER_BAD_FIELD_ERROR: Unknown column 'Products.MenuId' in 'field list'也會出現。 我做錯了什么?

菜單型號:

module.exports = function(sequelize, Sequelize) {
  var Menu = sequelize.define("Menu", {
      owner_id: Sequelize.INTEGER,
      menu_title: Sequelize.STRING,
  }, {
      classMethods: {
        associate: function(models) {
          Menu.hasMany(models.Product)
        }
      }
  });
  return Menu;
};

產品型號:

module.exports = function(sequelize, Sequelize) {
  var Product = sequelize.define("Product", {
      owner_id: Sequelize.INTEGER,
      menu_id: Sequelize.INTEGER,
      product_title: Sequelize.STRING,
  }, {
      classMethods: {
        associate: function(models) {
          Product.belongsTo(models.Menu, { foreignKey: 'menu_id'})
        }
      }
  });
  return Product;
};

然后在控制器內部:

Menu.find({
    where: { owner_id: req.user.id },
    include: [
        { model: Product }
    ]
}).success(function(match) {
    res.json(match.home);
});

謝謝你的幫助!

您需要在關系的兩側都包含外鍵

Menu.hasMany(models.Product, { foreignKey: 'menu_id'})

否則,sequelize假定從關系的菜單端進行查詢時,外鍵稱為menuId

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM