代码之家  ›  专栏  ›  技术社区  ›  Paul Chernoch

如何筛选一对多模型关系,以便只返回活动记录?

  •  0
  • Paul Chernoch  · 技术社区  · 6 年前

    在回环3中,我们使用MIXIN向我们的所有模型添加了一个名为“Active”的字段。当通过常用的查询方法请求模型时,我们添加了代码以根据活动标志进行筛选并拒绝不活动的记录。

    现在我们也希望为两国关系做同样的事情。每当导航关系时,它应该排除所有不活动的资源你怎么做到的?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Paul Chernoch    6 年前

    我们将此添加到所有模型json文件中:

      "scope": {
        "where": {
          "active": true
        }
      },
    

    要删除,我们必须添加MIXIN:

      module.exports = function(Model, options) {
        console.log(`Adding softDelete mixin to model ${Model.name}`);
        Model.once("attached", function() {
          Model.deleteById = function(id, auth, cb) {
            // If your tables follow the TableNameID pattern for Ids, then do this: 
            //   `UPDATE ${Model.name} SET active=0 WHERE ${Model.name}ID = ?`;
            var query = `UPDATE ${Model.name} SET active=0 WHERE ID = ?`;
    
            Model.dataSource.connector.query(query, [id], function(err, result) {
              if (err) {
                console.log(err);
              }
              cb(null, { Success: "Record Deleted" });
            });
          };
        });
      };