laravel 多对多关联 attach detach sync
2024-08-26 05:49:17
用户表和角色表,多对多关联,一个用户有多个角色,一个角色属于多个用户
添加多对多关联 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
最新文章
- 免费公开课,讲解强大的文档集成组件Aspose,现在可报名
- 如何给frame标签的src属性以及a标签的href属性自动设值
- Beennan的内嵌汇编指导(译)Brennan's Guide to Inline Assembly
- redis学习之二from github
- 常用JS正则表达式
- Tomcat打包时多项目共享jar和精确指定jar版本
- gulp.spritesmith修改px为rem单位
- 前端判断用户请求是PC还是移动端
- LinearGradient线性渲染
- ZSTU OJ 3999 零基础学算法---邻接表
- java http 分段下载
- 与众不同 windows phone (14) - Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成
- 使用Json实体类构建菜单数据
- ReentrantLock实现原理及源码分析
- 对 响应数据写在config文件的再次优化
- 201521123090《Java程序设计》第12周学习总结
- foreach循环中为什么不要进行remove/add操作
- JDBC结果集rs.next()注意事项
- 《JAVA程序设计》_第七周学习总结
- Python 属性描述符和属性的查找过程