【发布时间】:2015-01-05 07:36:34
【问题描述】:
我有User 和UserRole 的模型。当前有两个角色,并且这两个角色中有许多用户。我找不到获取 user 获取的 role 数据的方法。
我看到的错误是:Error: ER_BAD_FIELD_ERROR: Unknown column 'user_roles.user_id' in 'where clause'。
var User = bookshelf.Model.extend({
tableName: 'users',
role: function() {
return this.hasOne(UserRole);
}
}, {
lookupByToken: Promise.method(function(token) {
if (!token) throw new Error('Token is required');
return new this({token: token}).fetch({require: true, withRelated:['role']});
})
});
.
var UserRole = bookshelf.Model.extend({
tableName: 'user_roles',
users: function() {
return this.belongsToMany(User, 'users', 'role_id', 'id');
}
});
module.exports = UserRole;
knex 迁移如下所示:
knex.schema.createTable('user_roles', function (table) {
table.increments();
table.string('role').notNullable();
table.timestamps();
}).table('users', function(table) {
table.integer('role_id').unsigned().references('user_roles.id');
})
有什么想法吗?
【问题讨论】:
标签: mysql node.js bookshelf.js knex.js