Open blakethepatton opened 6 years ago
This way, duplicate records aren't added and foreign key constraints don't become an issue.
The sync method takes in an array, and any item with its id missing from that array will be removed https://laravel.com/docs/5.7/eloquent-relationships#Syncing-Associations. Based on the docs you cannot do this
$this->perms()->sync($permission, false);
Based on the docs you cannot do this
Based on the actual complete documentation, the laravel api docs, you can do this without removing records. The sync method acutally takes in a collection OR an array, as well as an optional boolean. Perhaps you didn't notice that I set the second parameter to false
?
The documentation: https://laravel.com/api/5.7/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.html#method_sync
The actual source file: https://github.com/laravel/framework/blob/5.7/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php#L82
This way, duplicate records aren't added and foreign key constraints don't become an issue.