假設資料情境是「每位員工可能屬於多個部門,每個部門可能包含多位員工」,這種多對多的關係。
資料情境:
程式碼:
- 在Model中使用belongsToMany建立多對多關係,employee_department則為中間關聯表的table name。
- withPivot: 可指定中間關聯表的資料要加上哪些欄位,如果沒加這個,預設只會出現關聯表的id(employee_id, department_id)。
設定完Model關聯關係後,可以快速取得某位員工的部門資料:
Employee::find(1)->departments
反之,Department也可以透過employees取得某個部門的員工資料。
列出所有員工,帶上對應的部門資料:
Employee::with('departments')->get()
完整程式碼:
結果: