Я хочу создать уникальный номер заказа для каждого заказа. Я пытаюсь вложить идентификатор созданного заказа в номер заказа.
Существуют крючки в дальнейшем, описанные в документах .
Можно ли использовать какие-либо из этих крючков? Я использую beforeCreate()
и beforeUpdate()
для га sh пароль перед сохранением.
'use strict';
module.exports = (sequelize, DataTypes) => {
const Order = sequelize.define('Order', {
buyer_id: DataTypes.INTEGER.UNSIGNED,
order_status_code: DataTypes.TINYINT.UNSIGNED,
order_detail: DataTypes.TEXT,
order_date: DataTypes.DATE
}, {
hooks: {
beforeSave: function(order, options) {
order.order_number = order.order_id + "UNIQUE"
}
}
});
Order.associate = function(models) {
// associations can be defined here
Order.hasOne(models.OrderItem,{foreignKey: "order_id"})
};
return Order;
};
Обновление
Я пробовал ниже метод, но он не работает. Крюк работает, но строка не обновляется.
module.exports = (sequelize, DataTypes) => {
const Order = sequelize.define('Order', {
buyer_id: DataTypes.INTEGER.UNSIGNED,
order_status_code: DataTypes.TINYINT.UNSIGNED,
order_detail: DataTypes.TEXT,
order_date: DataTypes.DATE
}, {
hooks:{
afterCreate: function(order, options) {
order.update({
order_number : 'OD' + Date.now + order.id + order.OrderItem.product_id + order.buyer_id
})
}
}
});
Order.associate = function(models) {
// associations can be defined here
Order.hasOne(models.OrderItem,{foreignKey: "order_id"})
};
return Order;
};