diff --git a/packages/pinia-orm/src/model/attributes/relations/BelongsToMany.ts b/packages/pinia-orm/src/model/attributes/relations/BelongsToMany.ts index fe11b97e6..2bb0b3751 100644 --- a/packages/pinia-orm/src/model/attributes/relations/BelongsToMany.ts +++ b/packages/pinia-orm/src/model/attributes/relations/BelongsToMany.ts @@ -110,6 +110,7 @@ export class BelongsToMany extends Relation { if (!pivot) { return } const relatedModelCopy = relatedModel.$newInstance(relatedModel.$toJson(), { operation: undefined }) + delete relatedModelCopy[`pivot_${this.relatedPivotKey}_${this.pivot.$entity()}`] relatedModelCopy.$setRelation(this.pivotKey, pivot, true) relationResults.push(relatedModelCopy) }) diff --git a/packages/pinia-orm/src/model/attributes/relations/MorphToMany.ts b/packages/pinia-orm/src/model/attributes/relations/MorphToMany.ts index d5928f95b..fb9a1548d 100644 --- a/packages/pinia-orm/src/model/attributes/relations/MorphToMany.ts +++ b/packages/pinia-orm/src/model/attributes/relations/MorphToMany.ts @@ -115,10 +115,12 @@ export class MorphToMany extends Relation { relatedModels.forEach((relatedModel) => { const pivot = pivotModels[`[${parentModel[this.parentKey]},${relatedModel[this.relatedKey]},${this.parent.$entity()}]`]?.[0] ?? null + if (!pivot) { return } + const relatedModelCopy = relatedModel.$newInstance(relatedModel.$toJson(), { operation: undefined }) + delete relatedModelCopy[`pivot_${this.relatedId}_${this.pivot.$entity()}`] relatedModelCopy.$setRelation(this.pivotKey, pivot, true) - - if (pivot) { relationResults.push(relatedModelCopy) } + relationResults.push(relatedModelCopy) }) parentModel.$setRelation(relation, relationResults) }) diff --git a/packages/pinia-orm/tests/feature/repository/retrieves_order_by.spec.ts b/packages/pinia-orm/tests/feature/repository/retrieves_order_by.spec.ts index 13df80c82..12922fcc9 100644 --- a/packages/pinia-orm/tests/feature/repository/retrieves_order_by.spec.ts +++ b/packages/pinia-orm/tests/feature/repository/retrieves_order_by.spec.ts @@ -170,12 +170,12 @@ describe('feature/repository/retrieves_order_by', () => { const expected = [ { id: 1, name: 'James', roles: [ - { id: 2, users: [], pivot_role_id_roleUser: null }, - { id: 1, users: [], pivot_role_id_roleUser: null }, + { id: 2, users: [] }, + { id: 1, users: [] }, ], }, { id: 2, name: 'Andy', roles: [ - { id: 1, users: [], pivot_role_id_roleUser: null }, + { id: 1, users: [] }, ], }, { id: 3, name: 'David', roles: [] },