1
我的透视表含有总共3米栏:Laravel - 仅同步枢轴表的子集
- USER_ID
- ROLE_ID
- 组
组仅仅是一个整数。我希望能够同步用户和他们的角色,但仅限于属于特定组的用户。
如果我运行一个简单的同步([1,2,3]),它将从数据透视表中删除所有内容,完全忽略该组。
我脑子里有几个解决方案:
选项一:
- 创建一个的UserRole新模式。
UserRoles::where('group', '=', '1');
User::roles()->detach(list_of_ids_from_previous_query);
User::roles()->attach(list_of_desired_ids_for_group_1);
选项B:
User::roles()->all();
- 花哨
$list_of_ids_from_previous_query
User::roles()->sync(list_of_merged_ids);
合并$list_of_desired_ids_for_group_1
有没有另一种方法来做到这一点与雄辩?我认为选项(a)更容易实现,因为我不必合并2个ID和组的多维数组。而且,选项(a)可能需要更多的数据库,因为它需要在所有组行上运行DELETE和INSERT。