如何在Bookshelf.js中使用自定义字段名创建多对多关系?
How do I create Many-to-Many relations with custom field names in Bookshelf.js?
我想在Bookshelf.js中创建一个多对多关系,并希望自己指定fk列的名称。我还希望能够访问Bookshelf中的helper表,类似于:
var Doctor = bookshelf.Model.extend({
patients: function() {
return this.belongsToMany(Patient).through(Appointment);
}
});
var Appointment = bookshelf.Model.extend({
patient: function() {
return this.belongsTo(Patient);
},
doctor: function() {
return this.belongsTo(Doctor);
}
});
var Patient = bookshelf.Model.extend({
doctors: function() {
return this.belongsToMany(Doctor).through(Appointment);
}
});
我该怎么做?
考虑到上面的例子,我们可以这样做:
var Doctor = bookshelf.Model.extend({
tableName: "d_doctor",
idAttribute: "d_doctorid",
patients: function() {
return this.belongsToMany(Patient).through(Appointment,"a_d_doctorid","a_p_patientid");
}
});
var Appointment = bookshelf.Model.extend({
tableName : "a_appointment",
idAttribute : "a_appointmentid",
patient: function() {
return this.belongsTo(Patient,"a_p_patientid");
},
doctor: function() {
return this.belongsTo(Doctor,"a_d_doctorid");
}
});
var Patient = bookshelf.Model.extend({
tableName : "p_patient",
idAttribute : "p_patientid",
doctors: function() {
return this.belongsToMany(Doctor).through(Appointment,"a_p_patientid", "a_d_doctorid");
}
});
相关文章:
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- 将值传递给jquery创建的输入字段
- 创建一个带有可变字段的json对象
- 使用具有用户定义字段的新请求者创建新的Zendesk票证
- 在表单输入字段中创建默认值
- 如何将typeahead.js(Bloodhound)添加到jQuery动态创建的字段中
- 如何使用Typescript创建一个包含对象的字段的新对象
- 删除创建的 JavaScript 字段集
- 如何动态删除使用 JavaScript 动态创建的输入字段
- 流星:在创建帐户上添加字段
- 使用parsley.js验证动态创建的字段
- 在原始对象的基础上创建新对象的最简单方法,但没有几个字段
- I'm试图创建一个html表单,根据字段的输入生成url地址
- Angular2-对有条件创建的输入字段进行表单验证
- Mongoose创建一个文档,如果找不到指定的字段,则更新文档中的数组
- 为动态创建的字段jQuery创建一个函数或事件
- 使用javascript创建输入字段
- ExtJS 5如何在模型中动态创建字段
- 想提交表单元素,同时通过追加按钮创建字段
- 动态创建字段时,jQuery日期选择器和时间选择器不起作用