2017-08-29 41 views
0

我是新來的Laravel和我試圖建立一個多對多的關係(至少我認爲這就是我需要)Laravel多到多伴有不同選項的關係

基本上每個用戶都要有偏好7種類型的喜好的一些喜好可以有多個值,有的只有一個值 這裏是user_pref_options

  • project_type | (將在複選框上查看並有多個選項)
  • 收藏| (一個用戶可以有多個這是另一個表的外鍵)
  • tagline | (將複選框放在視圖上並有多個選項)
  • bedroom_min | (每個用戶一個值)
  • bedroom_max | (每個用戶一個值)
  • sf_min | (每個用戶一個值)
  • sf_max | (每個用戶一個值)

,這裏是什麼user_pref表

| id | user_id | pref_option_id |值|

| --- | --- | --- | --- |

| 1 | 1 | 1 | 5 |

| 2 | 1 | 1 | 3 |

| 3 | 1 | 2 | 364 |

| 4 | 1 | 2 | 201 |

| 5 | 1 | 2 | 9 |

| 6 | 1 | 2 | 244 |

| 7 | 1 | 2 | 192 |

| 8 | 1 | 2 | 292 |

| 9 | 1 | 4 | 1 |

| 10 | 1 | 11 | 1 |

| 11 | 1 | 12 | 6 |

| 12 | 1 | 13 | 1628 |

| 13 | 1 | 14 | 9134 |

所以這將是1個用戶注意到一些選項類型怎麼會有倍數

抱歉,我收到我問我的問題打下了很多的背景。

我希望能夠使用Eloquent將用戶首選項連接到用戶,並且無法確定應該使用哪種方式進行操作。

這裏就是我試圖

//User model 
public function prefs(){ 
    return $this->belongsToMany('App\Pref', 'pref_user', 'user_id', 'pref_id'); 
} 

//Pref Model 
public function user() 
{ 
    return $this->belongsToMany('App\Pref', 'pref_user', 'user_id', 'pref_id'); 
} 

我已經採取了看here

我希望能夠得到所有的喜好和上顯示出來一個視圖 (我現在不會在這裏粘貼你)

我的努力是,一些偏好有多個選項,一些有單一選項。如何取回

也許我需要每個偏好型分離,以自己的模式的值,但似乎有點小題大做,我願意聽取建議

Screenshot of View

回答

1

user_pref表讓人難以區分你首選項,還設置了大量的開銷數據。 因此,您可以在user模型或獨立模型中設置單個值偏好設置(bedroom_min,bedroom_max,sf_minsf_max),並使用user檢索它們。而對於其他偏好,many-to-many的關係更好,更靈活。 最後,當您獲取用戶模型時,您將獲得模型及其關係。

+0

我只是喜歡把所有「偏好」都放在一張桌子上的想法,但我可以看到由於多行而變得複雜。謝謝 – happymacarts