如何删除通过关系创建的相关项?

时间:2015-10-23 11:16:19

标签: loopbackjs

我有3个型号:ModelA,ModelB和ModelC。

模型“A”与模型“B”之间存在关系(HasManyThrough),模型“C”。

如何删除相关项?

module.exports = function(ModelA) {
    ModelA.beforeRemote('deleteById', function(context, remoteMethodOutput, next) {

        //Remove relationships

        next();
    });
};

1 个答案:

答案 0 :(得分:0)

部分考虑因素:

  1. 调试上下文以实际查找与请求一起发送的id的位置。我使用通用示例来获取modelA的id。

  2. 要删除相关的modelB实例,modelAInstance.modelB.destroyAll()其中modelB是关系的名称,“modelA hasMany modelB”。

     ModelA.beforeRemote('deleteById', function(context, remoteMethodOutput, next) {
    
         //get the id of ModelA from context object.
         var id = context.req.id;
    
         //find the model instance to delete.
         ModelA.findById(id, function(err, modelAInstance) {
             if (err) throw err;
    
             //destroy all ModelB instance related to modelAInstance.
             modelAInstance.modelB.destroyAll({}, function(err, info) {
                 if (err) throw err;
                 console.log(info);
             });
         });
         next();
     });