我可以通过与另一个属性的关系来验证模型吗?

时间:2015-03-09 16:31:45

标签: validation sequelize.js

我有一个巡回赛的续集模型,它有一个开头和一个结尾:

this.model = db.define('Tour', {
    id: {
        type: Sequelize.BIGINT(20),
        allowNull: false,
        autoIncrement: true,
        primaryKey: true
    },
    from_time: {
        type: Sequelize.DATE,
        allowNull: true
    },
    to_time:  {
        type: Sequelize.DATE,
        allowNull: true
    }
}

如何确保to_timefrom_time之后?

(我猜validate可以使用,但我不知道如何)

1 个答案:

答案 0 :(得分:6)

验证码中的

this将引用当前模型。所以它可以写成:

// ...
to_time: {
    type: Sequelize.DATE,
    allowNull: true,
    validate: {
        isAfterFrom: function(toTime) {
            if (this.fromTime > toTime) {
                throw new Error('To time must be less then from time')
            }
        }
    }
},
// ...