为了实现类似的行为,我添加了一个组合属性并将其标记为unique。另外,我补充道
beforeCreate
beforeUpdate
我在模型钩子上生成组合属性来检查它是否唯一。
const YourModel = {
attributes: {
owner: {
model: 'user',
},
pet: {
model: 'pet',
},
petOwner: {
type: 'string',
unique: true,
}
},
beforeCreate : function(values,cb) {
// TODO get ids from related records or reset to default on missed relation record if you need it
const petId = 35;
const ownerId = 8;
values.petOwner = `${petId}-${ownerId}`;
cb();
},
beforeUpdate : function(values,cb) {
YourModel.beforeCreate(values, cb)
},
};
module.exports = YourModel;
结果,当您尝试添加具有相同关系的记录时,您将得到
E_UNIQUE
如你所料。