From 890f7e3919c819cf0ef9dbd61649b43dcae43faa Mon Sep 17 00:00:00 2001 From: Hamish Friedlander Date: Mon, 2 Jul 2012 17:25:14 +1200 Subject: [PATCH] BUG $db in extensions not inited early enough (#7598) When querying DataObjects by a generic parent class (like SiteTree for instance), fields added via $db set on child classes wouldnt appear. This is because Object::__construct wasnt called early enough in DataObject::__construct, so extensions werent initialised when $db was first accessed --- model/DataObject.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/model/DataObject.php b/model/DataObject.php index a11f3c564..faa2f0fa9 100644 --- a/model/DataObject.php +++ b/model/DataObject.php @@ -295,6 +295,9 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity * don't have their defaults set. */ function __construct($record = null, $isSingleton = false, $model = null) { + + parent::__construct(); + // Set the fields data. if(!$record) { $record = array( @@ -345,8 +348,6 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity HTTP::register_modification_date($record['LastEdited']); } - parent::__construct(); - // Must be called after parent constructor if(!$isSingleton && (!isset($this->record['ID']) || !$this->record['ID'])) { $this->populateDefaults();