我有一個名爲之旅父模型應該涉及到模型型地址的兩個實例關係 - 一次「出身」和一次爲'目的地'。我無法弄清楚這樣做的最有效方法。我想用Laravel雄辯的ORM與渴望加載實現的東西優雅像下面,當我返回的旅程:雄辯ORM - 如何處理與父模型同子模型的兩個實例
return Journey::with('origin','destination');
我已經試過如下:
1)用雄辯的ORM的one to one relationships
Journey
-------
id
user_id
date
Address
-------
id
journey_id
street
city
zipcode
觀察:
- 需要在添加 'journey_id' RESS模型,這意味着我真的不能再使用此模型以外的任何其他旅程
- 地址連接到旅作爲一個整體,所以我不能始發地和目的地實例之間的區別
2)使用ORM雄辯的polymorphic relationships
Journey
-------
id
user_id
date
Address
-------
id
street
city
zipcode
addressable_id
addressable_type
觀察:
- 我現在可以重新使用與其他車型的地址模式,但... 個
- 地址現在依然與旅程作爲一個整體,所以
3),涉及「journey.origin」或「journey.destination」通過其連接到「地址我不能始發地和目的地實例之間區別.ID」
Journey
-------
id
user_id
origin (address.id)
destination (address.id)
date
Address
-------
id
street
city
zipcode
觀察:
- 我現在可以起源&目的地實例之間的區別,但是...
- 我想我必須使用流利的查詢的連接,所以我沒有得到原籍&目的地追溯到地址車型
- 沒有鏈接回從地址到旅途
沒有人有任何關於表格/關係結構的建議,使旅程(源自目的地&)的插入和選擇儘可能優雅,最好使用Eloquent,以便我可以利用我的模型屬性和功能?
此外,儘管通過Journey模型訪問地址將成爲主要用例,但我還希望能夠通過Address模型訪問父Journey。
請問您有多個'Journey'與同'destionation'或'origin'? – rmobis
這是最終目標。但現在,如果地址重複,那麼我可以使用地址。 – Bishy