1
マイピボットテーブルは3列の合計が含ま:Laravel - ピボットテーブルのサブセットのみ同期が
- USER_ID
- は
- 基
グループROLE_IDはちょうど整数です。私は、ユーザーとその役割を同期することができますが、特定のグループに属するものだけを同期できたいと考えています。
シンプルな同期([1,2,3])を実行すると、ピボットテーブルからすべてが削除され、グループは完全に無視されます。
オプション:
- が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を実行する必要があるため、データベース集約的である可能性があります。