表我有3個表:通過另一加入一個表連接使用withRelated
Order: id
Item: id
OrderItems: order_id, item_id
我希望能夠取得一個特定的順序,並讓所有的與該訂單相關的項目,沒有通過做Order.where(...).fetch({withRelated: ['orderItem.item'])
引入混亂。
理想情況下,我想做Order.where(...).fetch({withRelated: ['items'])
和items
關係知道要通過OrderItems
表獲取信息。
我已經試過的關係
items() {
return this.hasMany('Item').through('OrderItem')
}
,但似乎並不如我預料的工作。
這可能使用Bookshelf的API而無需編寫手動連接?
非常感謝你@flaviodesousa。這似乎工作。唯一的問題是,我得到「關係」OrderItem「不存在」。我已經將它定義爲使用註冊模型的模型。對我來說,獲得這個工作的唯一方法就是輸入表名。理想情況下,我想保留在一個地方('OrderItem'模型)。任何想法如何讓你的例子工作? – rbhalla
不幸的是,當前版本的書架使用表格而不是模型來執行n:m映射。但正如我在最後一個註釋中提到的那樣,您仍然可以爲中間表創建一個模型,對於您有數據的情況(例如訂單項目的數量和價格)。如何/你在哪裏得到這個「關係」OrderItem「不存在」錯誤? – flaviodesousa
我最初假設,以及採取表名可能需要一個模型,所以出於這個原因,我通過我的中間模型。交換表名稱本身工作得很好。謝謝你的幫助。 – rbhalla