我的数据库中有两个表" modules"和#34; composants"。模块可以有很多合成器,并且有一个int属性" prix"。我想创建一个伪属性" prix"添加所有属性的模块" prix"其作曲家。如何在创建伪属性的函数内访问关联的合成器?
module.exports = function (sequelize, DataTypes) {
"use strict";
var module = sequelize.define('module', {
id_module: {
type: DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true
},
nom: {
type: DataTypes.STRING,
allowNull: false
},
coupe: {
type: DataTypes.STRING,
allowNull: false
},
gamme: {
type: DataTypes.STRING,
allowNull: false
},
prix: {
type : DataTypes.INTEGER.UNSIGNED,
allowNull: false,
get : function(models) {
var prix;
console.log(this);
return prix;
}
}
}, {
classMethods: {
associate: function(models) {
module.hasMany(models.caracteristique_module,{
hooks: true,
onDelete: 'cascade',
foreignKey: "id_caracteristique"
});
module.hasMany(models.composant, {
through: models.composition,
hooks: true,
onDelete: 'cascade',
foreignKey: "id_composant"
})
}
},
timestamps: false,
tableName: 'modules'
});
return module;
};
答案 0 :(得分:0)
找到了解决方案。 在模型中
prix: {
type : DataTypes.INTEGER.UNSIGNED,
allowNull: false,
get : function() {
var prix = 0;
if(this.composants != undefined){
this.composants.forEach(function(composants){
prix += parseInt(composants.prix);
});
}
return prix;
}
}