mirror of
https://github.com/archtechx/tenancy.git
synced 2026-08-06 14:54:05 +00:00
`TriggerSyncingEvents` registered the pivot attach listener on `saved`, which fires on both inserts and updates. So updating pivot columns on a `TenantPivot` (e.g. via `updateExistingPivot()`) re-ran the attach flow and tried to create the tenant resource again, causing a duplicate entry error. Switched the listener to `created` so we only attach when the pivot record is first created (detaching already uses `deleting`, so using `created` makes things a bit more consistent). Added a regression test before the fix (https://github.com/archtechx/tenancy/pull/1469/commits/5e3eb4322cc487d540796317e813ac2ffe076646). The fix (https://github.com/archtechx/tenancy/pull/1469/commits/d2fb4bc0d524cd98ec680e973b791f475afc3548) then made the test pass. Also improved the `saving` listener's comment a bit so that it's clear where the "central resource not available" exception actually comes from, since that wasn't obvious (also added the `@throws` annotation to `getCentralResourceAndTenant()`). Closes #1467 |
||
|---|---|---|
| .. | ||
| Events | ||
| Listeners | ||
| CentralResourceNotAvailableInPivotException.php | ||
| ModelNotSyncMasterException.php | ||
| ParsesCreationAttributes.php | ||
| PivotWithCentralResource.php | ||
| ResourceSyncing.php | ||
| Syncable.php | ||
| SyncMaster.php | ||
| TenantMorphPivot.php | ||
| TenantPivot.php | ||
| TriggerSyncingEvents.php | ||