2016-09-09 54 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工作? –