2014-11-08 78 views
0

我有一个模型UserUserRole。目前这两个角色中有两个角色和许多用户。我无法找到角色取数据用户bookshelfjs节点关系

我看到的错误是:Error: ER_BAD_FIELD_ERROR: Unknown column 'user_roles.user_id' in 'where clause'

​​

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'); 
}) 

任何想法?

回答

0

我想通了。该User模型是不正确的,应改为:

role: function() { 
    return this.belongsTo(UserRole, 'id'); 
} 

使用user.role()现在作为与变化的预期。