Sequelize 2 多对多关系
Sequelize 2 Many to Many relationship
我有可以被用户点赞和评论的视频,所以我需要 2 个多对多关联。
用户模型
User.belongsToMany(models.Video,{ through: 'user_like_video' });
User.belongsToMany(models.Video, { through: 'user_comment_video' });
视频模型
Video.belongsToMany(models.User, {through: 'user_like_video'});
Video.belongsToMany(models.User, {through: 'user_comment_video'});
我在数据库中得到的模式是:
视频标签之间的多对多关系效果很好我可以使用方法 getTags()
从视频中检索所有标签但是当你有 2 个(多对多关系)时如何创建方法?
当我使用 user.getVideos() 时,我只得到最后注册的关系,它在这里 user_comment_video。
终于找到方法了:
Video.belongsToMany(models.User, {through: 'user_like_video', as: 'Like'});
Video.belongsToMany(models.User, {through: 'user_comment_video',as: 'Comment'});
这公开了方法 getLike() 和 getComment()
我有可以被用户点赞和评论的视频,所以我需要 2 个多对多关联。
用户模型
User.belongsToMany(models.Video,{ through: 'user_like_video' });
User.belongsToMany(models.Video, { through: 'user_comment_video' });
视频模型
Video.belongsToMany(models.User, {through: 'user_like_video'});
Video.belongsToMany(models.User, {through: 'user_comment_video'});
我在数据库中得到的模式是:
视频标签之间的多对多关系效果很好我可以使用方法 getTags()
从视频中检索所有标签但是当你有 2 个(多对多关系)时如何创建方法?
当我使用 user.getVideos() 时,我只得到最后注册的关系,它在这里 user_comment_video。
终于找到方法了:
Video.belongsToMany(models.User, {through: 'user_like_video', as: 'Like'});
Video.belongsToMany(models.User, {through: 'user_comment_video',as: 'Comment'});
这公开了方法 getLike() 和 getComment()