我将node.js与bookshelf一起用作ORM。我是这项技术的新手。
我有一种情况,我在数据库表中有几列。出于这个问题,这些列应命名为'sold_by_id','signed_off_by_id'和'lead_developer_id',并且都是将引用带有ID的User表的列。
换句话说,系统中的不同用户在任何时候都会与三个不同的角色相关联,而不一定是唯一的。
展望未来,我需要能够以下列方式检索信息:
let soldByLastName = JobTicket.soldBy.get('last_name');
我试过四处寻找并阅读文档,但我仍然非常不确定如何实现这一目标。显然下面的内容不起作用,我知道第二个参数是针对目标表的,但它说明了我想要实现的概念。
// JobTicket.js
soldBy: function() {
return this.belongsTo(User, 'sold_by_id');
},
signedOffBy: function() {
return this.belongsTo(User, 'signed_off_by_id');
},
leadDeveloper: function() {
return this.belongsTo(User, 'lead_developer_id');
}
显然我需要在User.js
我不知道从哪里开始,有人能指出我正确的方向吗?
或者我只是一个白痴? ^ _ ^
答案 0 :(得分:0)
您的定义看起来正确。对于使用它们,它将类似于:
new JobTicket({ id: 33 })
.fetch({ withRelated: [ 'soldBy', 'signedOffBy' ] })
.then(jobTicket => {
console.log(jobTicket.related('soldBy').get('last_name');
});
除此之外,我建议您使用Registry
插件来引用其他模型。这减轻了引用尚未加载的模型的痛苦。