如何在softloop loopback中创建钩子以进行软删除

时间:2015-02-26 20:40:53

标签: node.js loopbackjs strongloop

我希望在所有模型中为Strongloop Loopback创建钩子,以实现软删除。

我希望将过滤器自动包含在已删除的位置:0,以便仅检索未删除的数据。我想要相同的验证逻辑,自动我的查询与deleted:0条件连接。我希望关联相同,因此只提取相关数据。

为了从DB端实现这一点,我创建了一个默认值为0的标志。如果我想获取已删除的记录。我只是附加了删除:1所以它覆盖了基本条件。昂给了我相关的信息。

我是PHP Dev所以要在框架中实现,我在基础模型中的beforeFilter中附加条件。请使用Strongloop Loopback帮助我。

1 个答案:

答案 0 :(得分:2)

您可以在模型上设置默认范围。这将应用于该模型的所有查询。您可以使用该默认范围创建基本模型,并在您正在实施软删除的其他模型中继承该基本模型。

{
  "name": "Base",
  "properties": {
    ...
  }
  "scope": {
    "order": "name",
    "limit": 100
    "where": {
      "deleted": 0
    }
  }
}

然后,在您想要使用默认范围的模型中,您将基本模型添加为将使用软删除的模型的base:属性。

{
  "name": "Product",
  "plural": "products",
  "base": "Base",
...
}

您可以在此处的文档中阅读更多内容:Default Scope in StrongLoop