如何在loopback中更改字段删除而不是id?

时间:2017-03-29 07:02:26

标签: mysql angularjs loopbackjs

我想使用loopabck删除MySQL表中的几行。但我不想使用id来删除记录。我在Angular SDK中尝试它。我的代码是:

ModelName.destroyById({ fieldName : myValue })
                          .$promise
                          .then(function() {

                          });

我非常感谢你的想法。

1 个答案:

答案 0 :(得分:0)

似乎您需要使用destroyAll方法,它可以执行您想要的操作,但您需要首先为其设置远程处理,因为它默认情况下已禁用:

  ModelName.remoteMethod('destroyAll', {
    isStatic: true,
    description: 'Delete all matching records',
    accessType: 'WRITE',
    accepts: {arg: 'where', type: 'object', description: 'filter.where object'},
    http: {verb: 'del', path: '/'}
  });

然后,您重新生成Angular客户端,您可以在客户端使用它:

ModelName.destroyAll({ filter: { fieldName : myValue }}).$promise.then(...)

请注意,使用destroyAll存在风险,因为您的代码中有任何错误,最终会丢失数据。将其启用到客户端可能是安全问题。

另一种方法是编写自己的remote method,它依次使用destroyAll并对输入进行适当的验证。