From 8dbff5c7bc367e805badf51204b4e31123cf9b6e Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Thu, 27 Aug 2020 15:36:13 -0400 Subject: [PATCH] Fixes for issue processwire/processwire-issues#572 --- wire/core/Page.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/wire/core/Page.php b/wire/core/Page.php index 79719e27..7dc8593e 100644 --- a/wire/core/Page.php +++ b/wire/core/Page.php @@ -1539,7 +1539,7 @@ class Page extends WireData implements \Countable, WireMatchable { // prevent storage of value if it was filtered when loaded if(!empty($selector)) $this->__unset($key); - if(is_object($value) && $value instanceof Wire) $value->resetTrackChanges(true); + if(is_object($value) && $value instanceof Wire && !$value instanceof Page) $value->resetTrackChanges(true); if($track) $this->setTrackChanges(true); $value = $this->formatFieldValue($field, $value); @@ -3077,9 +3077,11 @@ class Page extends WireData implements \Countable, WireMatchable { * */ public function resetTrackChanges($trackChanges = true) { - parent::resetTrackChanges($trackChanges); + parent::resetTrackChanges($trackChanges); foreach($this->data as $key => $value) { - if(is_object($value) && $value instanceof Wire && $value !== $this) $value->resetTrackChanges($trackChanges); + if(is_object($value) && $value instanceof Wire && !$value instanceof Page) { + $value->resetTrackChanges($trackChanges); + } } return $this; } @@ -4178,7 +4180,6 @@ class Page extends WireData implements \Countable, WireMatchable { foreach($this->template->fieldgroup as $field) { $value = parent::get($field->name); if($value != null && is_object($value)) { - if(method_exists($value, 'uncache') && $value !== $this) $value->uncache(); parent::set($field->name, null); if(isset($this->wakeupNameQueue[$field->name])) unset($this->wakeupNameQueue[$field->name]); }