diff --git a/src/Versioned.php b/src/Versioned.php index 948dce41..ebc25e81 100644 --- a/src/Versioned.php +++ b/src/Versioned.php @@ -15,6 +15,7 @@ use SilverStripe\Dev\Deprecation; use SilverStripe\Forms\FieldList; use SilverStripe\ORM\ArrayList; +use SilverStripe\ORM\Connect\NullDatabase; use SilverStripe\ORM\DataExtension; use SilverStripe\ORM\DataList; use SilverStripe\ORM\DataObject; @@ -2100,11 +2101,18 @@ public function VersionsList() */ public function allVersions($filter = "", $sort = "", $limit = "", $join = "", $having = "") { + /** @var DataObject $owner */ + $owner = $this->owner; + + // When an object is not yet in the Database, we can't get its versions + if (!$owner->isInDB()) { + return ArrayList::create(); + } + // Make sure the table names are not postfixed (e.g. _Live) $oldMode = static::get_reading_mode(); static::set_stage(static::DRAFT); - $owner = $this->owner; $list = DataObject::get(DataObject::getSchema()->baseDataClass($owner), $filter, $sort, $join, $limit); if ($having) { // @todo - This method doesn't exist on DataList