Laravel, sync() – how to sync an array and also pass additional pivot fields?

In order to sync multiple models along with custom pivot data, you need this: $user->roles()->sync([ 1 => [‘expires’ => true], 2 => [‘expires’ => false], … ]); Ie. sync([ related_id => [‘pivot_field’ => value], … ]); edit Answering the comment: $speakers = (array) Input::get(‘speakers’); // related ids $pivotData = array_fill(0, count($speakers), [‘is_speaker’ => true]); $syncData … Read more