From f46236cf28a104d93cb025c6b434ba9bb692c04a Mon Sep 17 00:00:00 2001 From: enzorrr <1351948+enzorrr@users.noreply.github.com> Date: Tue, 14 Dec 2021 15:21:04 +0100 Subject: [PATCH 1/2] Revert "just save relations that were added instead of re-saving all relations" --- src/fields/ReverseRelationsTrait.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/fields/ReverseRelationsTrait.php b/src/fields/ReverseRelationsTrait.php index ffaef1c..25bdc0b 100644 --- a/src/fields/ReverseRelationsTrait.php +++ b/src/fields/ReverseRelationsTrait.php @@ -96,12 +96,15 @@ public function afterElementSave(ElementInterface $element, bool $isNew) // Get sources $sources = (clone $element->getFieldValue($this->handle))->anyStatus()->all(); + // Find out which ones to add + $add = array_diff($sources, $this->oldSources); + // Find out which ones to delete $delete = array_diff($this->oldSources, $sources); - // Loop through sources - /** @var ElementInterface $source */ - foreach ($sources as $source) { + // Loop through all items that need to be added + /** @var ElementInterface $add */ + foreach ($add as $source) { $target = (clone $source->getFieldValue($field->handle))->anyStatus(); // Set this element on that element From f502312edde2c0433e17134211510d8ec0d58533 Mon Sep 17 00:00:00 2001 From: enzorrr <1351948+enzorrr@users.noreply.github.com> Date: Tue, 14 Dec 2021 15:51:43 +0100 Subject: [PATCH 2/2] bumped version --- CHANGELOG.md | 4 ++++ composer.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67bc7c0..d0e2a99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.3.1 - 2021-12-14 +### Changed +- Omit saving of relations that were not modified + ## 1.3.0 - 2021-08-25 ### Changed - Added Craft 3.7 compatibility (thanks to @brandonkelly) diff --git a/composer.json b/composer.json index 9695cd1..d9363de 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.3.1", "name": "robuust/craft-reverserelations", "description": "Reverse Relations for Craft 3", "type": "craft-plugin",