1
내 피벗 테이블 3 열 전체가 포함되어 있습니다. 사용자와 역할을 동기화 할 수 있지만 특정 그룹에 속한 사용자 만 동기화 할 수 있기를 바랍니다.Laravel 피벗 테이블의 일부만 동기화
간단한 동기화 ([1,2,3])를 실행하면 그룹을 모두 무시하고 피벗 테이블의 모든 것을 제거합니다.
옵션 A :
- 이 UserRoles에 대한 새로운 모델을 만들기 내가 마음에 몇 가지 솔루션을 가지고있다.
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
Eloquent에서 다른 방법이 있습니까? 나는 ID와 그룹의 2 차원 다차원 배열을 병합 할 필요가 없기 때문에 구현하기 쉽다 (a) 옵션을 구현하는 것이 더 쉽다. 또한 옵션 (a)은 모든 그룹 행에서 DELETE 및 INSERT를 실행해야하기 때문에 데이터베이스 집약적 일 수 있습니다.