javascript - BookshelfJS belongsToMany 不返回重复项

标签 javascript backbone.js bookshelf.js

我有两个表具有 belongsToMany 关系。数据透视表还包含一个名为 state 的列,它可以有 3 个不同的值。假设我的表是 Table1Table2

具有不同状态的相同Table1-Table2关系可以有多个条目。

我想获取 Table1 的所有数据透视条目,包括同一 Table2 的任何多个条目。

不幸的是,代码

return this.belongsToMany(Table2, 'pivot_table1_table2').withPivot(['state'])

只返回每个 Table2 的第一个条目。

感谢您的帮助。

最佳答案

这就是书架的工作原理!这是功能的一部分:删除欺骗。我找到了解决方法;从联结表中明确选择一个唯一的属性。如果没有,请为联结表创建一个模型。遗憾的是,那是当时唯一的解决方案。

更新:

也许是这样的。 routes.code 在我的例子中是独一无二的,它是联结表的一部分。如果这不会解决问题,请为联结表创建一个模型并设置好(这可能更受欢迎)。

new Station().where({
    id: req.params.id
}).fetch({
    withRelated: [{
        'routes': function(qb) {
            qb.select('routes.id', 'routes.code');
        }
    }]
}).then(function(result) {
    res.json(result.toJSON());
});

关于javascript - BookshelfJS belongsToMany 不返回重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30536411/

相关文章:

javascript - 解析 xhr.responseText 响应

Backbone.js 错误处理——你是怎么做的?

javascript - 如何更新主干 View 的部分内容?

postgresql - 在 knex 迁移中运行更新

javascript - 我如何调整/裁剪图像 simualar 如何背景大小 :cover does?

javascript - 使用 CasperJS 将结果写入文件

javascript - Meteor 应用程序中的 event.preventDefault() 对 Firefox 不起作用?

node.js - 对周围的所有 Node JS 框架/库等感到困惑

bookshelf.js - 在 bookshelf.js 中执行 where in 查询

node.js - 如何在 Bookshelf js 中使用 groupBy?