2017-04-09 1 views
1
using sequelize 3.30.1 

アソシエイションで関連するカテゴリと製品の2つのモデルがあります。私は%CatName%のようなCategory.nameで製品を検索することができますかsequalizeアソシエーションで検索

var Category = sequelize.define('Category', 
    { name: DataTypes.STRING }); 

}; 

var Product = sequelize.define("Product", { 

price:{type:DataTypes.INTEGER,UNSIGNED:true}, 
{ 
    classMethods: { 
    associate: function() { 

    Product.belongsTo(Category, { 
     foreignKey: { 
     name: 'category', 
     allowNull: false 
     } 
    }); 

}); 

答えて

0

申し訳ありませんが、ちょうどあなたのコードを再フォーマットしなければならなかった:

var Category = sequelize.define('Category', 
    { 
    name: DataTypes.STRING 
    }); 

var Product = sequelize.define("Product", 
    { 
    price: { 
    type: DataTypes.INTEGER, 
    UNSIGNED:true 
    }, 
    classMethods: { 
     associate: function() { 
     Product.belongsTo(Category, {foreignKey: {name: 'category', allowNull: false}}); 
     } 
    } 
    }); 

今、あなたは二つのモデルを持っているとの関連付けを定義していること、あなたが照会するのfindAll()メソッドを使用することができます。

var catName = 'book'; 

Product.findAll({ 
    include : [ 
    { 
     model: Category, 
     where: { 
     name: { 
      $like: '%' + catName + '%' 
     } 
     } 
    } 
    ] 
}) 
.then(function(
    console.log(result); 
}); 

これが機能するかどうかを確認してください。

関連する問題