original = clone $this; return $result; } public function __set($column, $value) { if (!isset($this->original)) { $this->original = clone $this; } if ($value instanceof SafeString) { $value = $value->unescaped(); } return parent::__set($column, $value); } public function __unset($column) { if (!isset($this->original)) { $this->original = clone $this; } return parent::__unset($column); } public function original() { if (!isset($this->original)) { $this->original = clone $this; } return $this->original; } } /** * Slide this in here for convenience. We won't ever be overloading ORM_Iterator without ORM. */ class ORM_Iterator extends ORM_Iterator_Core { /** * Cache the result row */ public function current() { $row = parent::current(); if (is_object($row)) { model_cache::set($row); } return $row; } }