【发布时间】:2018-08-09 00:16:08
【问题描述】:
在 loopback 3 中,我们使用 mixin 为所有模型添加了一个名为“active”的字段。当通过常用查询方法请求模型时,我们添加了代码以通过活动标志过滤并拒绝非活动记录。
现在我们希望对关系做同样的事情。每当导航关系时,它应该排除所有不活动的资源。你是怎么做到的?
【问题讨论】:
标签: loopbackjs loopback
在 loopback 3 中,我们使用 mixin 为所有模型添加了一个名为“active”的字段。当通过常用查询方法请求模型时,我们添加了代码以通过活动标志过滤并拒绝非活动记录。
现在我们希望对关系做同样的事情。每当导航关系时,它应该排除所有不活动的资源。你是怎么做到的?
【问题讨论】:
标签: loopbackjs loopback
我们将此添加到我们所有的模型 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" });
});
};
});
};
【讨论】: