用戶表和角色表,多對多關聯,一個用戶有多個角色,一個角色屬於多個用戶數組
添加多對多關聯 attach:spa
給1號用戶添加1號角色,並把關聯表的column字段賦值爲$value,後邊的數組須要的時候再添加.net
$user = App\User::find(1);
$user->roles()->attach(1,['column'=>$value]);blog
attach以後,1號用戶關聯的角色就是1號角色同步
因此,attach適合添加關聯class
同步多對多關聯 sync:方法
把1號用戶關聯的角色同步爲2,3號角色,並把關聯表2號角色的column字段賦值爲$valueqq
$user = App\User::find(1);
$user->roles()->sync([2=>['column'=>$value],3,4]);di
sync以後,1號用戶關聯的角色就是2,3,4號角色,由於1號角色不在sync方法中,同步時1號角色的關聯會解除co
因此,sync適合更新關聯和添加關聯
刪除多對多關聯 detach:
刪除一號用戶的$roleId的角色,
$user = App\User::find(1);
$user->roles()->detach($roleId);
$roleId爲2時,刪除1號用戶的2號角色,1號用戶關聯的角色還剩下3,4號角色
$roleId爲空時,刪除1號用戶的全部角色,1號用戶關聯的角色都被刪除
$roleId也能夠爲數組[2,3],刪除數組內的指定角色,1號用戶關聯的角色還剩下4號角色
因此,detach適合刪除關聯
原文:https://blog.csdn.net/qq_23000373/article/details/81121533