防止删除相关模型实例 - Loopback 3
Prevent deleting related model instance - Loopback 3
我有两个模型:
User.json
"relations": {
"items": {
"type": "hasMany",
"model": "Item",
"foreignKey": "userid"
},}
Item.json
"relations": {
"user": {
"type": "belongsTo",
"model": "User",
"foreignKey": "userid"
},}
环回生成此端点:
删除/User/{userid}/items/{itemid}
我想覆盖默认的删除方法,这样项目就不会被删除,只有 属性 active
将设置为 false
。
My question is: how can I override this default method or prevent
deleting record?
我试过:
Item.once('attached',function(){
Item.destroyById = function(filter,auth, cb){
console.log('This is a overridden method')
}
})
好像没有执行。
并且:
Item.observe('before delete', function(ctx, next) {
var err = new Error("Not deleted");
next(err)
});
它有效(项目未被删除)但抛出了我想避免的错误。
也许有办法将一些参数传递给 next()
方法?
也许您可以为该操作实现连接器挂钩,您可以在其中动态修改数据库查询。
var connector = Model.getDataSource().connector;
connector.observe('before execute', function(ctx, next) {
// preview your query and modify it as desired
console.log(ctx);
// so when you call next it will be executed in a shape you've created
next();
});
这里有一些关于它的更多信息:
https://loopback.io/doc/en/lb3/Connector-hooks.html
我有两个模型:
User.json
"relations": {
"items": {
"type": "hasMany",
"model": "Item",
"foreignKey": "userid"
},}
Item.json
"relations": {
"user": {
"type": "belongsTo",
"model": "User",
"foreignKey": "userid"
},}
环回生成此端点:
删除/User/{userid}/items/{itemid}
我想覆盖默认的删除方法,这样项目就不会被删除,只有 属性 active
将设置为 false
。
My question is: how can I override this default method or prevent deleting record?
我试过:
Item.once('attached',function(){
Item.destroyById = function(filter,auth, cb){
console.log('This is a overridden method')
}
})
好像没有执行。
并且:
Item.observe('before delete', function(ctx, next) {
var err = new Error("Not deleted");
next(err)
});
它有效(项目未被删除)但抛出了我想避免的错误。
也许有办法将一些参数传递给 next()
方法?
也许您可以为该操作实现连接器挂钩,您可以在其中动态修改数据库查询。
var connector = Model.getDataSource().connector;
connector.observe('before execute', function(ctx, next) {
// preview your query and modify it as desired
console.log(ctx);
// so when you call next it will be executed in a shape you've created
next();
});
这里有一些关于它的更多信息: https://loopback.io/doc/en/lb3/Connector-hooks.html