laravel 多對多關聯 attach detach sync

用戶表和角色表,多對多關聯,一個用戶有多個角色,一個角色屬於多個用戶數組

添加多對多關聯 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

相關文章
相關標籤/搜索