【发布时间】:2015-05-09 16:01:41
【问题描述】:
我有一个 User 模型和一个 Course 模型,它们是多对多的关系,所以基本上用户可以加入多个课程并且课程有很多用户(学生)。我有一个连接表,我正在尝试向连接表添加其他信息。基本上,用户每个月都有一个每月可以提出的问题配额。所以我在 User_Course 连接表中添加了一个配额列。我无法访问配额列。下面是相关代码给出一个思路。
var User = DB.Model.extend({
Courses: function() {
return this.belongsToMany('Course', 'User_Course', 'userId', 'courseId');
},
});
var Course = DB.Model.extend({
Users: function() {
return this.belongsToMany('User', 'User_Course', 'courseId', 'userId');
}
})
User_Course 是我的连接表,它有额外的配额列:
**User_Course:**
userId: int
courseId: int
quota: int
我希望能够减少我的配额值。我可以使用 updatePivot 对其进行更新,但我无法简单地获取配额中的值。这是我用来更新值的代码:
var userPromise = new User.User({userId: userId}).fetch({withRelated: ['Courses']});
userPromise.then(function(_user) {
_user.related('enrolledCourses').updatePivot({courseId:courseId, quota:1}).then(function() {
return;
})
})
如您所见,我在这里每次都将配额值更新为 1。我想以编程方式确定当前配额值是多少,然后递减它。
【问题讨论】:
标签: mysql node.js bookshelf.js