From f4efaeefa73ce2163399b3b4a6622cbe026a0a25 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Fri, 11 Jan 2013 12:20:28 +1300 Subject: [PATCH] FIX: Fix DataObject::get_one() when the classname is passed with improper casing. --- model/DataObject.php | 6 ++---- tests/model/DataObjectTest.php | 4 ++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/model/DataObject.php b/model/DataObject.php index 27ae22fe0..e3834648e 100644 --- a/model/DataObject.php +++ b/model/DataObject.php @@ -2850,12 +2850,10 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity && DataObject::$_cache_get_one[$callerClass][$cacheKey] instanceof DataObject && DataObject::$_cache_get_one[$callerClass][$cacheKey]->destroyed) { - DataObject::$_cache_get_one[$callerClass][$cacheKey - ] = false; + DataObject::$_cache_get_one[$callerClass][$cacheKey] = false; } if(!$cache || !isset(DataObject::$_cache_get_one[$callerClass][$cacheKey])) { - $dl = DataList::create($callerClass)->where($filter)->sort($orderby); - $dl->setDataModel(DataModel::inst()); + $dl = $callerClass::get()->where($filter)->sort($orderby); $item = $dl->First(); if($cache) { diff --git a/tests/model/DataObjectTest.php b/tests/model/DataObjectTest.php index 6942dda02..321588683 100644 --- a/tests/model/DataObjectTest.php +++ b/tests/model/DataObjectTest.php @@ -171,6 +171,10 @@ class DataObjectTest extends SapphireTest { $this->assertEquals('Bob', $comment->Name); $comment = DataObject::get_one('DataObjectTest_TeamComment', '', true, '"Name" DESC'); $this->assertEquals('Phil', $comment->Name); + + // Test get_one() with bad case on the classname + $subteam1 = DataObject::get_one('dataobjecttest_subteam', "\"Title\" = 'Subteam 1'", true); + $this->assertEquals($subteam1->Title, "Subteam 1"); } public function testGetSubclassFields() {