From 85af461eb4a19dca50bc04dfcd50435a2183f69d Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Fri, 1 Mar 2019 15:13:21 +0200 Subject: [PATCH] FlexObject: When creating object and key isn't set, use storage key instead --- system/src/Grav/Framework/Flex/FlexObject.php | 3 +++ system/src/Grav/Framework/Object/Base/ObjectTrait.php | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/system/src/Grav/Framework/Flex/FlexObject.php b/system/src/Grav/Framework/Flex/FlexObject.php index b6ce3478c..3d0b076cd 100644 --- a/system/src/Grav/Framework/Flex/FlexObject.php +++ b/system/src/Grav/Framework/Flex/FlexObject.php @@ -481,6 +481,9 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface $storageKey = key($result); if ($value && $storageKey) { $this->setStorageKey($storageKey); + if (!$this->hasKey()) { + $this->setKey($storageKey); + } } if (method_exists($this, 'saveUpdatedMedia')) { diff --git a/system/src/Grav/Framework/Object/Base/ObjectTrait.php b/system/src/Grav/Framework/Object/Base/ObjectTrait.php index 3a50e2ec3..519d4dca7 100644 --- a/system/src/Grav/Framework/Object/Base/ObjectTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectTrait.php @@ -56,6 +56,14 @@ trait ObjectTrait return $this->_key ?: $this->getType() . '@@' . spl_object_hash($this); } + /** + * @return bool + */ + public function hasKey() + { + return !empty($this->_key); + } + /** * @param string $property Object property name. * @return bool True if property has been defined (can be null).