laravel 多對多對應關系操作


 

 

 

 

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

添加多對多關聯 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適合刪除關聯

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM