【问题标题】:Loopback, how to only allow a user to create one instance of another model that has to belong to the UserLoopback,如何只允许用户创建必须属于用户的另一个模型的一个实例
【发布时间】:2016-05-02 19:08:18
【问题描述】:

我有一个用户的 Loopback API,该用户是具有 User 基类的模型。

我还有另一个模型,称为参与者。这表示已注册参加活动的用户。

我希望此参与者需要对用户的引用(外键)。我也想要它,以便用户只能创建一个参与者。最后,当用户创建参与者时,它必须引用用户自己的 ID。我该如何设置?

【问题讨论】:

    标签: node.js acl loopback


    【解决方案1】:

    这对我来说似乎是标准的一对一连接。 Loopback 为此提供了HasOneBelongsTo 关系。

    根据您的场景,您可以按如下方式定义 Participant 和 MyUser:

    我的用户.json

    {
      "name": "MyUser",
      "base": "User",
      "idInjection": true,
      "options": {
        "validateUpsert": true
      },
      "properties": {},
      "remoting": {
        "normalizeHttpPath": true
      },
      "validations": [],
      "relations": {
        "participant": {
          "type": "hasOne",
          "model": "Participant",
          "foreignKey": "userId"
        }
      },
      "acls": [],
      "methods": {},
      "mixins": {}
    }
    

    参与者.json

    {
      "name": "Participant",
      "base": "PersistedModel",
      "idInjection": true,
      "properties": {},
      "validations": [],
      "relations": {
        "user": {
          "type": "belongsTo",
          "model": "MyUser",
          "foreignKey": "userId"
        }
      },
      "acls": [],
      "methods": {}
    }
    

    然后您可以像这样为您的 MyUser 创建一个参与者:

    POST /my-users/{id}/participant
    

    如果您尝试为此 MyUser 实例创建另一个 Participant 实例,您将收到以下错误:

    错误 (500):HasOne 关系不能创建多个 Participant 实例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      相关资源
      最近更新 更多