2015-05-29 51 views
1

我有兩個表具有belongsToMany的關係。數據透視表還包含一個名爲state的列,其中可能有3個不同的值。說我的桌子是Table1Table2BookshelfJS belongsToMany不返回重複項

對於與states不同的Table1-Table2關係可以有多個條目。

我想獲得Table1的所有數據透視條目,包括同一Table2的任何多個條目。

不幸的是,代碼

return this.belongsToMany(Table2, 'pivot_table1_table2').withPivot(['state']) 

只返回每個Table2的第一項。

幫助表示讚賞。

+0

同樣在這裏,我不明白爲什麼這是一個默認的,而不是一個選擇... –

回答

1

這就是書架的作品!這是該功能的一部分:刪除這些模糊。我找到了一個解決方法;明確地從聯結表中選擇唯一的屬性。如果沒有,則爲交接表創建一個模型。那是可悲的唯一解決方案。

更新:

也許類似的東西。 routes.code在我的情況下是唯一的,它是聯結表的一部分。如果這不起作用,則爲聯結表創建一個模型,然後設置它(這可能更受歡迎)。

new Station().where({ 
    id: req.params.id 
}).fetch({ 
    withRelated: [{ 
     'routes': function(qb) { 
      qb.select('routes.id', 'routes.code'); 
     } 
    }] 
}).then(function(result) { 
    res.json(result.toJSON()); 
}); 
+0

我有一個'creation_date'列將完全是唯一的,所以我可以使用它。但我該怎麼辦呢?你能提供一個示例代碼嗎? – Kousha

+0

我已經更新了我的答案。 – uglycode

+0

快速提問:在上面的語句中,你是'withRealted'中的查詢用於'routes'表。所以你實際上是指另一個「路線」。我實際上有相同的條目,需要顯示在數據透視表中。所以我不明白它會如何幫助我。我需要在數據透視表上做些事情,而不是'routes'表格。 – Kousha