我一直在試圖定義一些數據庫模式來使用laravel框架。我想模擬一場足球比賽。我想要做的第一步是定義實體關係圖,但是我發現這一點(我認爲這很不重要)會在某些方面造成混淆。在Laravel中有兩個外鍵字段的數據庫一對多
首先,顯而易見的方法是說Match與兩個團隊有關,而一個團隊與任意數量的Matches相關。所以,我們會有一個「多對多」的關係。
但是,多對多關係的實現是有兩個表和一箇中間表來關聯兩個實體。我認爲這太過分了,當我知道一場比賽總是有兩個球隊,並且只有兩個球隊(local_id和visitant_id)與球隊表中的外鍵足夠。另外,我希望能夠做到:
Match::find(1)->local() or Match::find(1)->visitant();
所以,在思考這個我實現了「一對多」的關係,但與此我有另外一個問題。要檢索一個團隊發揮了所有的比賽,我想這樣做:
Team::find(1)->matches();
但我不能這樣做,因爲定義在雄辯的比賽()方法時(默認情況下它會是我只能指定一個鍵列team_id,但它應該是visitant_id和local_id)。
對我來說這個回報只是「visitant_id」的相關模型而已...... – ciccioassenza 2015-08-23 00:05:48
這仍然適用於Laravel 5.2 – arleslie 2016-09-02 05:23:02
在Laravel 5.3 $這是一個空的模型對象。任何想法如何在Laravel 5.3中實現? – 2017-03-03 09:42:37