• laravel 多对多关联 attach detach sync


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

    添加多对多关联 attach:

    给1号用户添加1号角色,并把关联表的column字段赋值为$value,后边的数组需要的时候再添加

    $user = AppUser::find(1);
    $user->roles()->attach(1,['column'=>$value]);

    attach之后,1号用户关联的角色就是1号角色

    所以,attach适合添加关联

    同步多对多关联 sync:

    把1号用户关联的角色同步为2,3号角色,并把关联表2号角色的column字段赋值为$value

    $user = AppUser::find(1);
    $user->roles()->sync([2=>['column'=>$value],3,4]);

    sync之后,1号用户关联的角色就是2,3,4号角色,因为1号角色不在sync方法中,同步时1号角色的关联会解除

    所以,sync适合更新关联和添加关联

    删除多对多关联 detach:

    删除一号用户的$roleId的角色,

    $user = AppUser::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

  • 相关阅读:
    gcc相关
    test
    第二次课
    VS快捷键
    第7章 站在对象模型的尖端
    第6章 执行期语意学
    第5章 构造, 析构, 拷贝语意学
    第4章 Function语意学
    第一次课
    第3章 Data语意学
  • 原文地址:https://www.cnblogs.com/sgm4231/p/10542940.html
Copyright © 2020-2023  润新知