2016-05-06 25 views
0

我使用Sequelize,HAPI和MySQL。Sequelize - 如何访问M中的连接表:M

我有两个模型,有M:M通过自动创建链接表。

这是我如何做L:L:

Project.belongsToMany(models.ProjectTag, {through: 'ProjectToProjectTags'}); 
ProjectTag.belongsToMany(models.Project, {through: 'ProjectToProjectTags'}); 

这种说法使得称为ProjectToProjectTags第三个表。

现在,当我想创建一个标签,并将其分配给一个项目,我尝试下面的代码:

newTag.TagName = request.payload.tagname; 
    newTag.TagDescription = request.payload.tagdescription; 

    models.ProjectTag.create(newTag).then(function (newTagCreated) { 
     var newTagToProject = {}; 
     newTagToProject.ProjectTagId = newTagCreated.id; 
     newTagToProject.ProjectId = ProjectId; 
     models.ProjectToProjectTag.create(newTagToProject).then(function 
     (newTagCreated) { 
      response(newTagCreated).code(200); 
     }) 
    }) 

码在第二创建行失败:

models.ProjectToProjectTag.create 

ProjectToProjectTag模型不存在,因为它是自动创建的。我怎样才能做这个更新?

回答

0

你说它创建模型ProjectToProjectTags,但你使用ProjectToProjectTag。猜猜你应该把它改为ProjectToProjectTags(复数)。的

models.ProjectToProjectTag.create 
+0

所以

models.ProjectToProjectTags.create 

,而不是是的,这是在代码中的错误。但是,ProjectToProjectTags表已创建,但没有具有此类名称的模型。如果可能,我想避免原始查询。 –

+0

你确实有一个包含模型“ProjectToProjectTags”的文件吗?原因我猜表'ProjectToProjectTags'已创建,但没有实际的模型。见http://docs.sequelizejs.com/en/latest/docs/associations/#nm –

+0

我没有实际的文件。我需要它吗?如果是的话,那我应该怎么做呢? –

相关问题