首页 Order Laravel 正文

Laravel 多对多的关联写入

金鹏头像 金鹏 Laravel 2022-04-01 14:04:07 0 335
导读:一.关联写入1. 多对多的新增:比如,给用户增加一个角色权限,具体如下://得到要添加权限的用户$user =User ::find(99);//...
.关联写入

1. 多对多的新增: 比如,给用户增加一个角色权限,具体如下:

//得到要添加权限的用户

$user = User ::find(99);

//得到权限的 id,比如超级管理员

$roleId = 1;

//给辉夜设置成超级管理员

$user->role()->attach($roleId);

 

2.  如果你想给中间表附加 details字段的数据,可以使用第二参数; 

$user->role()->attach($roleId, [ 'details ' => '']);

 

3.  如果想移出某个用户的角色权限,可以使用 detach()方法;

//删除一个角色权

$user->role()->detach($roleId);

 

PS如果不指定中间表 id,那么就移出这个用户的所有权限角色;

 

4.  也支持批量处理,直接用数组传递参数即可;

//这里传递的是角色权限表的 ID

$user->role()->attach([1,2,3]);  //附加值  1 => [ 'detail ' => 'xxx '] //删除指定的 user_id

$user->role()->detach([1,2,3]);

 

5. 使用 sync()方法,可以新增角色权限,且可以判断已存在而不再新增;

//步关联 ,已存在不在新增

return $user->role()->sync([1,2,3]);  //附加值  1 => [ 'detail ' => 'xxx ']

6. 使用 udpateExistingPivot()可更新指定 roleId 的额外字段;

//更新中间表的额外字段

$user->role()->updateExistingPivot($roleId, [ 'details '=> '']);

 

PS直接使用 update()是更新所有;

PS:通过查源码或 IDE 代码提示的方法,有更多的操作;


本文地址:https://www.jinpeng.work/?id=177
若非特殊说明,文章均属本站原创,转载请注明原链接。
广告3

欢迎 发表评论:

  • 请填写验证码

日历

«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930

控制面板

您好,欢迎到访网站!
  查看权限
广告2

退出请按Esc键