資源
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 的影片才會使用