我有以下型号model.fetch与相关模型bookshelfjs
company.js
var Company = DB.Model.extend({
tableName: 'company',
hasTimestamps: true,
hasTimestamps: ['created_at', 'updated_at']
});
user.js的
var User = DB.Model.extend({
tableName: 'user',
hasTimestamps: true,
hasTimestamps: ['created_at', 'updated_at'],
companies: function() {
return this.belongsToMany(Company);
}
});
随着Company
和User
之间的关系many-to-many
通过其处理数据库中的下表。
user_company.js
var UserCompany = DB.Model.extend({
tableName: 'user_company',
hasTimestamps: true,
hasTimestamps: ['created_at', 'updated_at'],
users: function() {
return this.belongsToMany(User);
},
companies: function() {
return this.belongsToMany(Company);
}
});
问题是,当我运行下面的查询。
var user = new User({ id: req.params.id });
user.fetch({withRelated: ['companies']}).then(function(user) {
console.log(user);
}).catch(function(error) {
console.log(error);
});
,因为它正在寻找company_user
表,而不是user_company
它会记录以下错误。
{ [Error: select `company`.*, `company_user`.`user_id` as `_pivot_user_id`, `company_user`.`company_id` as `_pivot_company_id` from `company` inner join `company_user` on `company_user`.`company_id` = `company`.`id` where `company_user`.`user_id` in (2) - ER_NO_SUCH_TABLE: Table 'navardeboon.company_user' doesn't exist]
code: 'ER_NO_SUCH_TABLE',
errno: 1146,
sqlState: '42S02',
index: 0 }
有没有什么办法告诉它在获取关系时寻找某个表?