- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个针对 User
和 UserRole
的模型。当前有两个角色以及跨这两个角色的许多用户。我找不到在获取用户时获取角色数据的方法。
我看到的错误是:错误: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/
我刚开始使用 bookshelfJS,我找不到关于如何执行以下操作的明确答案。 考虑我有以下表格: product -------- id product_account -------- id pr
假设我们有一个连接表 vehicle_inspections 和另一个连接表 inspection_actions,以及 actions、vehicles 的基本表和检查`。 假设我想要以下数据库条目
我有两个表具有 belongsToMany 关系。数据透视表还包含一个名为 state 的列,它可以有 3 个不同的值。假设我的表是 Table1 和 Table2。 具有不同状态的相同Table1-
我有一个针对 User 和 UserRole 的模型。当前有两个角色以及跨这两个角色的许多用户。我找不到在获取用户时获取角色数据的方法。 我看到的错误是:错误:ER_BAD_FIELD_ERROR:“
所以我试过了 let Book = bookshelf.Model.extend({tableName: 'book'}) let User = bookshelf.Model.extend({
我正在使用“withRelated”通过 bookshelfjs 查询两个表。如何按相关表中的列对结果进行排序?例如我想按 rankingLinks.id 对所有结果进行排序 .fetchAll({w
这个问题在这里已经有了答案: How do I access previous promise results in a .then() chain? (17 个答案) 关闭 7 年前。 我想在单个
例如,给定一个属性为 sell_out 的产品列表,我想更新该集合中每个项目的字段。 在这个特定的例子中,假设我想设置字段 sold_out = false将该字段设置为 true 的所有项目: Pr
我在 bookshelfjs 中使用 bcrypt 哈希密码,当我在注册时进行插入查询时,它工作得很好,但是当我尝试更新密码时,它不会对密码进行哈希处理。 模型.js var Bookshelf =
服务 var Model = require('./../models'); var myService = function (query_params, callback) { Model
我有两个表:补丁和设备。这里的关系是多对多,所以我有一个pivot_device_patch数据透视表。 数据透视表还有一列状态,可以是可用、失败、成功。该设备可以有多个相同的补丁(即第一个失败,因此
我使用 BookshelfJS 作为我的 ORM。我有 3 个模型。 TripHistory user_id route_id Route id name Users id name 从我的用户模型来
我正在尝试使用 Bookshelf连同 Express 4.0并且似乎无法让他们一起工作,或者更确切地说,我似乎无法遵循“最佳实践”。 Bookshelf 文档提到,应该始终在整个应用程序中重用它的同
我使用Bookshelfjs.org的方法来查询一些数据。但有一个错误!这是我的代码。 var Defray = db.Model.extend({ tableName: 'defray',
构建 ORM 查询时,我想查看执行的实际(原始)查询是什么。 例如在 Rails 中我们可以这样做: User.where(name: 'Oscar').to_sql # => SELECT "use
我有以下型号 company.js var Company = DB.Model.extend({ tableName: 'company', hasTimestamps: true, h
我正在向 ExpressJS 应用程序中的 Bookshelf 用户模型添加一个非常基本的登录方法,但我无法从用户模型中的登录函数返回的被拒绝的 promise 中捕获错误。我正在查看文档中 Book
我的第一个 BookshelfJS/KnexJS 脚本有一些问题,它有一个表关联。我非常仔细地复制了一对多示例,只是将其从 Books and Pages 切换为 Driers and Cars。但是
我在 PostgreSQL 数据库中有一个 JSONB 列,如 {lat: value, lon: value}。我想一次更改任何特定值,例如。纬度,但我不确定如何使用 bookshelf.js 或
我在 MySQl 数据库中有两个表,它们是: 客户: cust_ID (PK) cust_name trans_ID (FK) 交易 trans_id (PK) trans_amount 在 Node
我是一名优秀的程序员,十分优秀!