2016-02-12 103 views
1

我可能會在這裏丟失一些明顯的東西,但花了幾個小時就無法找到解決方案。如何在回送模型中創建多對多的關係?

假設我有一個僱員模型

"properties": { 
    "name": { 
     "type": "string", 
     "required": true 
    }, 
    "age": { 
     "type": "number", 
     "required": true 
    } 
    }; 

及其子模型

"properties": { 
    "Code": { 
     "type": "string", 
     "required": true 
    }, 
    "Desc": { 
     "type": "string", 
     "required": true 
    } 
    } 

如何創建一個多在它們之間一對多的關係?

回答

0

您可以將接受的屬性傳遞接受字段添加到remoteMethod選項。 在documentation中閱讀此頁。

module.exports = function(Task) { 
    fs.readdir(PATH_PROCESS+PATH_API, (err, o) => { 
     for(var c in o){ 
      var i = o[c]; 
      Task[i] = require(PATH_PROCESS+i+".js").lpb; 
      Task.remoteMethod(
          i, { 
        http: {path: ('/'+i), verb: 'post'}, 
        returns: {arg: 'result', type: 'object'}, 
        accepts: [ 
         {arg: 'params', type: 'object', required: true, http: {source: 'body'}, 
         description: (i+' params.')} 
        ] 
          } 
         ); 
     } 
    }); 
}; 
+0

謝謝,你能解釋一下你的代碼如何創建模型間的多對多關係 – gurvinder372

+0

如果我理解的很好,你也可以導出module.exports.params上的參數並將它們導入到需要關聯的任何地方一個模塊到另一個。 – Assinnata

+0

這將嵌入一個模型屬性到另一個,它不會創建多對多關係 – gurvinder372

0

docs

一個hasManyThrough關係建立與其他模型中的許多一對多連接。這個關係表明,通過繼續執行第三個模型,可以將聲明模型與另一個模型的零個或多個實例進行匹配。

使用slc loopback:relation命令來建立模型之間的關係。當提示時不要忘記添加模型(也在文檔中解釋)。

在創建模型之間的關係後,您必須使用automigrate()autoupdate()將更改與數據庫同步。

使用automigrate時要小心,因爲它會創建或重新創建數據庫,這意味着您可能會丟失數據。

+0

hasManyThrough仍然檢查子表值是唯一的。它仍然希望我每次都有獨特的作用,這違背了許多人的原則。是否有一個通過回送進行多對多關係的工作示例?我可以有另一張表來存儲多對多的關係嗎? – gurvinder372

+0

@ gurvinder372我不確定我是否理解這個「它仍然希望我每次都能成立一個獨特的角色」,你能解釋一下嗎?此外,您是否嘗試過病人 - 醫生的文檔示例? –

+0

對不起,還沒有試過。你能分享鏈接嗎? – gurvinder372

相關問題