Node.js Bookshelf js fetchAll withRelated选项返回空的关系对象
当INode.js Bookshelf js fetchAll withRelated选项返回空的关系对象,node.js,bookshelf.js,knex.js,Node.js,Bookshelf.js,Knex.js,当I.fetchAll({withRelated:'backfire'})时我在输出中得到一个名为逆火的属性,其值为{}。在knex调试模式下,我清楚地看到选择“backfire”。*从“backfire”中选择“backfire”,在(?)中选择“id”在复制/粘贴到sqlite3控制台时(当然,在输入有效ID后)起作用。所以我知道我的模型一定是正确的 Knex迁移 Models.js } 我的用法 查看文档时,似乎model.fetchAll的“withRelated”字段与model.fe
.fetchAll({withRelated:'backfire'})时代码>我在输出中得到一个名为逆火的属性,其值为{}。在knex调试模式下,我清楚地看到选择“backfire”。*从“backfire”中选择“backfire”,在(?)中选择“id”代码>在复制/粘贴到sqlite3控制台时(当然,在输入有效ID后)起作用。所以我知道我的模型一定是正确的
Knex迁移
Models.js
}
我的用法
查看文档时,似乎model.fetchAll的“withRelated”字段与model.fetch的选项不同。我自己也遇到了这个问题。如果使用debug:true运行knex,您可以看到它将只查询正在获取的表,而不是关系
我自己对Bookshelf.js还不熟悉,但我认为,这可以通过使用集合来实现
您正在使用哪个底层数据库?我在SQLite3上试过你的代码,没有问题:()SQLite3可能我还有另一个问题。谢谢你的关注,我会在本周挖掘更多信息,并向你汇报。Victoria Oberra有什么好运气吗?我没有,但我可能需要一段时间才能再做这件事。有没有办法“结束”这个问题?我想这是书架的一个相当大的问题。我想获取一个事件列表,每个事件都有邀请列表。我不确定如果没有此功能,人们将如何解决此问题:
exports.up = function(knex, Promise) {
return knex.schema.createTable("backfire", function(table) {
table.increments("id").primary();
table.string("response").notNullable();
table.string("created_by").notNullable();
table.timestamps();
}).then(function(){
return knex.schema.createTable("backfireTrigger", function(table) {
table.increments("id").primary();
table.string("trigger").notNullable();
table.integer("backfire_id").unsigned().notNullable().references("id").inTable("backfire");
table.string("created_by").notNullable();
table.timestamps();
});
});
};
module.exports = function(bookshelf) {
var Backfire = bookshelf.Model.extend({
tableName: 'backfire',
backfireTriggers: function() {
return this.hasMany(BackfireTrigger);
}
});
var BackfireTrigger = bookshelf.Model.extend({
tableName: 'backfireTrigger',
backfire: function() {
return this.belongsTo(Backfire);
}
});
return {
Backfire: Backfire,
BackfireTrigger: BackfireTrigger
};
function getAllTriggers() {
var self = this;
return new self.models.BackfireTrigger()
.fetchAll({
withRelated: ['backfire']
});
}
var BackfireTriggers = bookshelf.Collection.extend({
model: BackfireTrigger
});
BackfireTriggers.forge().fetch({ withRelated: 'backfire' }).then(…);