Inserting & Updating Related Models: Many To Many Relationships

Many To Many Relationships

Attaching / Detaching

$user = App\User::find(1);

$user->roles()->attach($roleId);
$user->roles()->attach($roleId, ['expires' => $expires]);
// Detach a single role from the user...
$user->roles()->detach($roleId);

// Detach all roles from the user...
$user->roles()->detach();
$user = App\User::find(1);

$user->roles()->detach([1, 2, 3]);

$user->roles()->attach([
    1 => ['expires' => $expires],
    2 => ['expires' => $expires]
]);

Syncing Associations

$user->roles()->sync([1, 2, 3]);
$user->roles()->sync([1 => ['expires' => true], 2, 3]);
$user->roles()->syncWithoutDetaching([1, 2, 3]);

Toggling Associations

$user->roles()->toggle([1, 2, 3]);

Saving Additional Data On A Pivot Table

App\User::find(1)->roles()->save($role, ['expires' => $expires]);

Updating A Record On A Pivot Table

$user = App\User::find(1);

$user->roles()->updateExistingPivot($roleId, $attributes);

Inserting & Updating Related Models: Many To Many Relationships — Structure map

Clickable & Draggable!

Inserting & Updating Related Models: Many To Many Relationships — Related pages: