laravel 多对多关联 attach detach sync

用户表和角色表,多对多关联,一个用户有多个角色,一个角色属于多个用户

添加多对多关联 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适合删除关联


原文:https://blog.csdn.net/qq_23000373/article/details/81121533

转载于:https://www.cnblogs.com/sgm4231/p/10542940.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值