資源
Laravel7 30天: 目錄
專案連結: github - laravel7 之 30 天分享
前言
上一篇: Day 16. Eloquent Relationships 一對多
今天要來分享 多對多
關聯表文章區
| 關聯 | 名稱 | 傳送門 |
|---|---|---|
| One To One | 一對一 | Day 15. Eloquent Relationships 一對一 |
| One To Many | 多對多 | Day 16. Eloquent Relationships 一對多 |
| Many To Many | 多對多 | Day 17. Eloquent Relationships 多對多 |
| Polymorphic One To One | 多態的一對一 | Day 18. Eloquent Polymorphic Relationships 多態的一對一 |
| Polymorphic One To Many | 多態的一對多 | Day 19. Eloquent Polymorphic Relationships 多態的一對多 |
| Polymorphic Many To Many | 多態的多對多 | Day 20. Eloquent Polymorphic Relationships 多態的多對多 |
Many To many (多對多)
表的關係
資料表關係如下
| |

Model 設定
app/Models/User.php
| |
app/Models/Role.php
| |
如何使用
- 取得
| |
- 新增 / 修改 / 刪除
| |
snyc會自動判斷 要新增還是刪除,滿方便的
進階
中間表加入時間戳
預設的中間表只有 兩個有關係表的ID,時間戳要自己加
加也很容易,就是關聯的時候加上 withTimestamps() 就可以
| |
自定義使用中間表
我們預設使用中間表都是使用 pivot
使用方式如下
| |
所以如果要字定義的話可以再關聯的時候使用 as
參考一下範例
| |
使用的時候就會變成 …
| |
自訂中間表
中間表(pivot) 官方會有預設的表名,
就是兩個關係表的表名,字母在前面的是前面
如
| |
但其實有時候會不是妳要的名稱
所以我們可以建 pivot
會員以及角色中間表 role_user 預設就是 RoleUser
如果妳希望是 UserRole 的話 …
| |
關聯的時候使用 using() 就可以了
| |
結語
當初我要理解多對多也卡很久
後來也是參考 Laravel Daily 的影片才會使用
