- attachメソッドを使用する方法:
$user = User::find(1);
$user->roles()->attach($roleId);
上記の例では、Userモデルのインスタンスを取得し、rolesリレーションシップを介してピボットテーブルに新しい行を追加しています。$roleId
には関連するモデルのIDが入ります。
- syncメソッドを使用する方法:
$user = User::find(1);
$user->roles()->sync([$roleId1, $roleId2, $roleId3]);
syncメソッドは、指定したIDの行だけをピボットテーブルに保持するように設定します。もし指定したID以外の行が存在する場合は、それらの行は削除されます。
- updateExistingPivotメソッドを使用する方法:
$user = User::find(1);
$user->roles()->updateExistingPivot($roleId, ['column_name' => 'new_value']);
updateExistingPivotメソッドは、指定したピボットテーブルの行の特定のカラムを更新します。上記の例では、column_name
というカラムをnew_value
に更新しています。