我想使用环回删除MySQL表中的几行。但我不想使用ID删除记录。我正在Angular SDK中尝试。我的代码是:

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

                          });

我会非常感谢的想法。

最佳答案

似乎您需要使用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和正确的输入验证。

07-26 09:29