在第三个联接表上一对多的书架

时间:2019-02-18 09:14:11

标签: javascript knex.js bookshelf.js

我正在尝试找出如何使用书架使用以下模式来获取正确的数据,但是我无法找出使用through来获取数据的正确方法。 user是一个org的成员,一个org有许多users,并且members表用于链接这两个。我可以从members正确地获得org,也可以从user正确地获得orgmember,但是我无法获得org中的user。我收到以下错误Cannot convert undefined or null to object.有什么想法吗?

User schema
id: primary
name: string

Org schema
id: primary
name: string

Member schema
id: primary
user_id: fk to User
org_id: fk to Org

下面是模型的代码

const bookshelf = require('../bookshelf')

const User = bookshelf.Model.extend('User', {
  tableName: 'users',
  org: function () {
    return this.belongsTo('Org').through('Member')
  }
})

const Org = bookshelf.Model.extend('Org', {
  tableName: 'orgs',
  members: function () {
    return this.belongsToMany('User', 'Member')
  }
})

const Member = bookshelf.Model.extend('Member', {
  tableName: 'members',
  org: function() {
      return this.belongsTo('Org')
  },
  user: function() {
      return this.belongsTo('User')
  }
})

编辑:如果将User更改为以下内容,则会返回Orgs的数组,但这是不正确的,因为User只能是一个{{ 1}}。

Org

我在这里想念什么?

0 个答案:

没有答案