我无法从User
模型扩展的模型中创建关系。有关完整的详细信息,请参阅the issue I opened。我使用名为hasMany
的{{1}}扩展模型创建了belongsTo
/ User
关系。
公共/模型/ user.json
user
公共/模型/ account.json
account
问题
在创建用户,登录和设置访问令牌后的Loopback API Explorer中,我尝试通过POST请求创建用户帐户条目({
"name": "user",
"plural": "users",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string"
}
},
"validations": [],
"relations": {
"accounts": {
"type": "hasMany",
"model": "account",
"foreignKey": "userId"
}
},
"acls": [{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW",
"property": "__create__accounts"
}],
"methods": {}
}
其中{
"name": "account",
"plural": "accounts",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
}
},
"validations": [],
"relations": {
"user": {
"type": "belongsTo",
"model": "user",
"foreignKey": "userId"
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW",
"property": "create"
}
],
"methods": {}
}
表示用户ID)。响应是404,并显示以下错误消息:
/users/{id}/accounts
我已经按照文档编写了一些东西,即使没有设置ACL,我也看到了这个问题。我创建了一个full example project here。
有没有人遇到过这个?我猜我需要为我的{id}
模型添加更多ACL设置,但我不清楚它会是什么。
答案 0 :(得分:1)
您需要在User
model-config.json
模型
{
"User": {
"dataSource": "db",
"public": false
},
...
}
由于它对于远程处理是可见的,因此它仍在您的扩展模型上使用。警告形式有一个小提示,可以指出这个问题。你可以在应用程序被引导时看到它。
警告:覆盖远程处理类型用户