2016-05-06 24 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

我沒有實際的文件。我需要它嗎?如果是的話,那我應該怎麼做呢? –

相關問題