用戶表和角色表,多對多關聯,一個用戶有多個角色,一個角色屬於多個用戶
添加多對多關聯 attach:給1號用戶添加1號角色,並把關聯表的column字段賦值為$value,后邊的數組需要的時候再添加
$user = App\User::find(1);
$user->roles()->attach(1,['column'=>$value]);attach之后,1號用戶關聯的角色就是1號角色
所以,attach適合添加關聯
同步多對多關聯 sync:把1號用戶關聯的角色同步為2,3號角色,並把關聯表2號角色的column字段賦值為$value
$user = App\User::find(1);
$user->roles()->sync([2=>['column'=>$value],3,4]);sync之后,1號用戶關聯的角色就是2,3,4號角色,因為1號角色不在sync方法中,同步時1號角色的關聯會解除
所以,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適合刪除關聯