我在Loopback中具有以下“内容”模型,该模型需要经过身份验证的用户才能访问。
每个内容只能由一个用户创建。 (用户是从Loopback内部用户模型继承的)所以创建内容时,我希望将UserId存储在Content记录中。
但是,我希望这种情况在后台发生,而不必通过API传递userId。
我玩过关系,但这似乎没有解决。
{
"name": "Content",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"BooId": {
"type": "string",
"required": true
},
"Name": {
"type": "string",
"required": true
},
"Language": {
"type": "string",
"required": true,
"default": "en-gb"
},
"Version": {
"type": "number",
"default": 1
},
"Text": {
"type": "string",
"required": true
},
"Created": {
"type": "date",
"defaultFn": "now"
},
"Tags": {
"type": [
"string"
],
"default": []
}
},
"validations": [],
"relations": [],
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$unauthenticated",
"permission": "DENY"
}
],
"methods": {}
}
最佳答案
首先,我将为内容创建一个新关系。所以我将关系添加到您的Content模型:
"relations": {
"author": {
"type": "belongsTo",
"model": "user", // <-- your user model name
"foreignKey": ""
}
}
然后,您可以使用
before save
挂钩在内容模型上设置userId
。或者,您只需下载此mixin即可为您做。
https://github.com/akkonrad/loopback-author-mixin