From 007b17a7ba3717e6bf89eaee595c2f0fe3f1e023 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Tue, 25 Sep 2018 11:16:31 +0300 Subject: [PATCH] Fixed partial save for Flex Objects --- system/src/Grav/Framework/Flex/FlexObject.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/system/src/Grav/Framework/Flex/FlexObject.php b/system/src/Grav/Framework/Flex/FlexObject.php index a9fd6f248..944e8cb72 100644 --- a/system/src/Grav/Framework/Flex/FlexObject.php +++ b/system/src/Grav/Framework/Flex/FlexObject.php @@ -116,15 +116,18 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface */ public function update(array $data, $isFullUpdate = false) { + // Validate and filter the incoming data. $blueprint = $this->getFlexDirectory()->getBlueprint(); + $blueprint->validate($data + ['storage_key' => $this->getStorageKey(), 'timestamp' => $this->getTimestamp()]); + $data = $blueprint->filter($data); if (!$isFullUpdate) { + // Partial update: merge data to the existing object. $elements = $this->getElements(); $data = $blueprint->mergeData($elements, $data); } - $blueprint->validate($data + ['storage_key' => $this->getStorageKey()]); - $data = $blueprint->filter($data); + // Filter object data. $this->filterElements($data); if ($data) {