From 34d53dc42de45d65886cf9f559eacfb04c19200a Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Tue, 16 Mar 2010 03:17:44 +0000 Subject: [PATCH] BUGFIX: Flush cache after deleting an item. BUGFIX: Fixed databaseFieldsOnly version of DataObject::getChangedFields() git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@101116 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- core/model/DataObject.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/model/DataObject.php b/core/model/DataObject.php index ee2429bb4..ef587f4fe 100755 --- a/core/model/DataObject.php +++ b/core/model/DataObject.php @@ -1119,6 +1119,8 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity $sql->execute(); } } + // Remove this item out of any caches + $this->flushCache(); $this->onAfterDelete(); @@ -2011,8 +2013,12 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity } if($databaseFieldsOnly) { - $customDatabaseFields = self::custom_database_fields($this->class); - $fields = array_intersect_key($this->changed, $customDatabaseFields); + $databaseFields = $this->inheritedDatabaseFields(); + $databaseFields['ID'] = true; + $databaseFields['LastEdited'] = true; + $databaseFields['Created'] = true; + $databaseFields['ClassName'] = true; + $fields = array_intersect_key((array)$this->changed, $databaseFields); } else { $fields = $this->changed; }