gpt4 book ai didi

mysql - bookshelfjs Node 关系

转载 作者:行者123 更新时间:2023-11-29 23:27:49 25 4
gpt4 key购买 nike

我有一个针对 UserUserRole 的模型。当前有两个角色以及跨这两个角色的许多用户。我找不到在获取用户时获取角色数据的方法。

我看到的错误是:错误:ER_BAD_FIELD_ERROR:“where 子句”中存在未知列“user_roles.user_id”

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

有什么想法吗?

最佳答案

我明白了。 User 模型不正确,应为:

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

使用 user.role() 现在可以通过该更改按预期工作。

关于mysql - bookshelfjs Node 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26819409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com