diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/gallery/libraries/MY_ORM.php | 20 | ||||
-rw-r--r-- | modules/gallery/tests/Item_Model_Test.php | 1 |
2 files changed, 19 insertions, 2 deletions
diff --git a/modules/gallery/libraries/MY_ORM.php b/modules/gallery/libraries/MY_ORM.php index 56c776aa..95fa9006 100644 --- a/modules/gallery/libraries/MY_ORM.php +++ b/modules/gallery/libraries/MY_ORM.php @@ -19,12 +19,11 @@ */ class ORM extends ORM_Core { // Track the original value of this ORM so that we can look it up in ORM::original() - protected $original = null; + protected $original; public function save() { model_cache::clear(); $result = parent::save(); - $this->original = clone $this; return $result; } @@ -48,7 +47,24 @@ class ORM extends ORM_Core { return parent::__unset($column); } + public function reload($original_only=false) { + if (!$original_only) { + parent::reload(); + } + $this->original = clone $this; + return $this; + } + + public function clear() { + parent::clear(); + $this->original = clone $this; + return $this; + } + public function original() { + if (!isset($this->original)) { + $this->original = clone $this; + } return $this->original; } } diff --git a/modules/gallery/tests/Item_Model_Test.php b/modules/gallery/tests/Item_Model_Test.php index bf5fca1a..c0ac4436 100644 --- a/modules/gallery/tests/Item_Model_Test.php +++ b/modules/gallery/tests/Item_Model_Test.php @@ -166,6 +166,7 @@ class Item_Model_Test extends Unit_Test_Case { $item = self::_create_random_item(); $item->title = "ORIGINAL_VALUE"; $item->save(); + $item->reload(false); $item->title = "NEW_VALUE"; $this->assert_same("ORIGINAL_VALUE", $item->original()->title); |