在查询Bookshelf.js时,如何访问从父类型继承的模型中的其他列

时间:2017-02-09 20:35:43

标签: javascript node.js postgresql knex.js bookshelf.js

在我的项目中,我有一个父表'Tasks',其中包含'owner_id''title'等字段。我还有两个特定的任务变体,名为'TaskFind''TaskFix'。这些都扩展了'Tasks'表并提供了其他列。

使用Bookshelf的forge创建子模型的实例没有问题。但是,当我尝试查询所有任务时,我无法访问扩展模型中的字段。

例如,假装我有一个数据库,其中包含一个TaskFix实例和一个TaskFind实例。如果我像这样查询所有Tasks

Task
  .fetchAll()
  .then(results => {
      res.json(results);
    });

结果看起来像这样

{
  {
    id       : 1,
    owner_id : 1,
    title    : "My TaskFind"
  },
  {
    id       : 2,
    owner_id : 1,
    title    : "My TaskFix"
  }
}

真的,我希望它们看起来像这样:

{
  {
    id       : 1,
    owner_id : 1,
    title    : "My TaskFind"
    additional_columns : ...
  },
  {
    id       : 2,
    owner_id : 1,
    title    : "My TaskFix"
    additional_columns : ...
  }
}

如果我单独查询它们,我会得到额外的列。例如:

TaskFix                       // (rather than just 'Task')
  .fetchAll()
  .then(results => {
      res.json(results);
    });

工作并检索所有其他列。

知道在Bookshelf.js中是否可以这样做吗?如果没有,是否有一个好的解决方法?

0 个答案:

没有答案