Sails.js 销毁具有一对一关联的实例
Sails.js destroy instance with one-to-one associations
我正在研究一个模型,该模型具有一对一和单向关联的几个属性。当我销毁该主模型的一个实例时,它是否也会销毁关联的实例?
如果没有,那么方便的方法是什么?
目前Waterline不支持级联删除记录。
现在这样做的一种相对干净的方法是向您的模型添加一个 afterDestroy
挂钩。
// Pet.js
module.exports = {
attributes: {
owner: {
model: 'person'
}
}
}
// Person.js
module.exports = {
attributes: {
pet: {
model: 'pet'
}
},
afterDestroy: function(deletedRecords, next) {
async.each(deletedRecords, function(person, cb) {
Pet.destroy({owner: person.pet}, cb);
}
], next);
}
}
每次删除 Person
条记录时,afterDestroy
函数将 运行。如果你想在删除宠物时也删除人,你需要在 Pet
模型中做同样的事情。
我正在研究一个模型,该模型具有一对一和单向关联的几个属性。当我销毁该主模型的一个实例时,它是否也会销毁关联的实例?
如果没有,那么方便的方法是什么?
目前Waterline不支持级联删除记录。
现在这样做的一种相对干净的方法是向您的模型添加一个 afterDestroy
挂钩。
// Pet.js
module.exports = {
attributes: {
owner: {
model: 'person'
}
}
}
// Person.js
module.exports = {
attributes: {
pet: {
model: 'pet'
}
},
afterDestroy: function(deletedRecords, next) {
async.each(deletedRecords, function(person, cb) {
Pet.destroy({owner: person.pet}, cb);
}
], next);
}
}
每次删除 Person
条记录时,afterDestroy
函数将 运行。如果你想在删除宠物时也删除人,你需要在 Pet
模型中做同样的事情。