2016-09-09 49 views
0

这里的现有表中现有列的值设置一个新列的值根据使用Sequelize

var Main = sequelize.define('Main', { 
    id: { 
    type: Sequelize.INTEGER(100), 
    allowNull: true 
    }, 
    status: { 
    type: Sequelize.INTEGER(100), 
    allowNull: true 
    } 
}); 

,我想设置状态的值等于id + 1的值,我尝试setter和getter的定义如下,但它不工作:

var Main = sequelize.define('Main', { 
    id: { 
    type: Sequelize.INTEGER(100), 
    allowNull: true 
    }, 

    status: { 
    type: Sequelize.INTEGER(100), 
    allowNull: true, 
    get: function() { 
      var num = getDataValue('id'); 
      return num; 
     }, 
    set: function (val) { 
      this.setDataValue('status',val+1); 
     } 
    } 
}); 

我该怎么办?

回答

0

制定者期望您在创建记录时发送该列。 你可以:

  1. 发送一个空值状态,并改变你的二传手到:

set: function() { 
 
    this.setDataValue('status', this.getDataValue('id') + 1); 
 
}

  • 您的二传手更改为编号属性
  • set: function (value) { 
     
        this.setDataValue('status', value + 1); 
     
    }

    +0

    但地位并没有改变,我怎样才能使setter和getter工作? –