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。