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

Javascript 查询Bookshelf.js时,如何访问从父类型继承的模型中的其他列,javascript,node.js,postgresql,knex.js,bookshelf.js,Javascript,Node.js,Postgresql,Knex.js,Bookshelf.js,在我的项目中,我有一个父表'Tasks',其中包含'owner\u id'和'title'等字段。我还有两种特定的任务变体,分别称为'TaskFind'和'TaskFix'。它们都扩展了'Tasks'表,并提供了额外的列 我可以使用Bookshelf的forge创建儿童模型的实例。但是当我尝试查询所有任务时,我无法访问扩展模型中的字段 例如,假设我有一个数据库,其中一个实例是TaskFix,另一个实例是TaskFind。如果我像这样查询所有任务: Task .fetchAll() .th

在我的项目中,我有一个父表
'Tasks'
,其中包含
'owner\u id'
'title'
等字段。我还有两种特定的任务变体,分别称为
'TaskFind'
'TaskFix'
。它们都扩展了
'Tasks'
表,并提供了额外的列

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

例如,假设我有一个数据库,其中一个实例是
TaskFix
,另一个实例是
TaskFind
。如果我像这样查询所有
任务

Task
  .fetchAll()
  .then(results => {
      res.json(results);
    });
{
  {
    id       : 1,
    owner_id : 1,
    title    : "My TaskFind"
    additional_columns : ...
  },
  {
    id       : 2,
    owner_id : 1,
    title    : "My TaskFix"
    additional_columns : ...
  }
}
结果是这样的

{
  {
    id       : 1,
    owner_id : 1,
    title    : "My TaskFind"
  },
  {
    id       : 2,
    owner_id : 1,
    title    : "My TaskFix"
  }
}
实际上,我希望它们看起来像这样:

Task
  .fetchAll()
  .then(results => {
      res.json(results);
    });
{
  {
    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中是否可以这样做吗?如果没有,有好的解决方法吗?

如果我遵循您的方法,您只需要定义一对多关系:当您使用withRelated选项构建查询时,使用fetch():如果我遵循您的方法,您只需要定义一对多关系:当您使用withRelated选项构建查询时,使用fetch():