2022-04-25|閱讀時間 ‧ 約 2 分鐘

Laravel Eloquent: 多對多查詢

假設資料情境是「每位員工可能屬於多個部門,每個部門可能包含多位員工」,這種多對多的關係。

資料情境:


程式碼:

  • 在Model中使用belongsToMany建立多對多關係,employee_department則為中間關聯表的table name。
  • withPivot: 可指定中間關聯表的資料要加上哪些欄位,如果沒加這個,預設只會出現關聯表的id(employee_id, department_id)。

設定完Model關聯關係後,可以快速取得某位員工的部門資料:
Employee::find(1)->departments
反之,Department也可以透過employees取得某個部門的員工資料。

列出所有員工,帶上對應的部門資料:
Employee::with('departments')->get()

完整程式碼:

結果:

  • pivot中儲存的是中間關聯表的欄位。
分享至
成為作者繼續創作的動力吧!
小弟是一位軟體工程師,樂於幫助他人,撰寫技術文章除了幫助自己複習以外,也希望可以幫助到他人,若文章內容有誤,還請大大不吝給予指教!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

發表回應

成為會員 後即可發表留言