LoopBack:如何创建扩展的用户模型关系

时间:2017-06-25 17:26:48

标签: strongloop loopback

我无法从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设置,但我不清楚它会是什么。

1 个答案:

答案 0 :(得分:1)

您需要在User

中隐藏基本model-config.json模型
{
  "User": {
    "dataSource": "db",
    "public": false
  },
  ...
}

由于它对于远程处理是可见的,因此它仍在您的扩展模型上使用。警告形式有一个小提示,可以指出这个问题。你可以在应用程序被引导时看到它。

警告:覆盖远程处理类型用户