模型关系不起作用

时间:2015-01-28 13:24:03

标签: node.js loopbackjs

我正在尝试弄清楚如何使模型关系在环回中工作。

我已经成功完成了一项工作(国家 hasMany CountryLanguage ),这一项显示在国家/地区网址中。 但是当我试图做另一个时,它不起作用。

这是我正在尝试做的事情:

我有用户模型和事件模型,我希望 Event 模型与创建事件的用户链接,但我也想要一个多对多的关系来管理用户对事件的订阅。我已经尝试过hasMany但它不起作用,它不会出现在资源管理器中。

关于所有权关系只是事件 hasOne 用户

更新:

以下是我与用户的关系:

"relations": {
    "publicEvents": {
      "type": "hasAndBelongsToMany",
      "model": "PublicEvent",
      "foreignKey": ""
    },
    "privateEvents": {
      "type": "hasAndBelongsToMany",
      "model": "PrivateEvent",
      "foreignKey": ""
    }
  },

所以现在事件的关系正如在用户可以成为事件的所有者那样,我也不知道在这种情况下我是否选择了正确的关系hasMany? (也没有在事件模型中声明的关系)

但是我知道我也希望用户能够订阅一个活动,我为这个 PublicSubscriptions PrivateSubscriptions 创建了两个模型:

"properties": {
    "userId": {
      "type": "string",
      "required": true
    },
    "privateEventId": {
      "type": "string",
      "required": true
    }
  },

但我不知道这样做的方式,我想这些字段不是必需的,关系可以解决这个问题,但我不知道选择哪一个。

1 个答案:

答案 0 :(得分:0)

不是为Event创建两个模型,而是可以有一个Event模型和两个关系

  

relation createdEvents:User hasMany Event

     

relation subscribedEvents:User hasMany Event

然后,您应该为第一个关系设置一些具有特定自定义角色的用户(例如“eventCreator”)。此角色下的用户拥有更多权限(如创建活动)。

标准用户只能订阅。因此可以使用第二种关系来跟踪订阅。

希望这有帮助