diff --git a/cake/libs/controller/controller.php b/cake/libs/controller/controller.php index 39871165b..99b018c6e 100644 --- a/cake/libs/controller/controller.php +++ b/cake/libs/controller/controller.php @@ -438,7 +438,7 @@ class Controller extends Object { } if ($this->persistModel === true) { - $this->_persist($modelClass, true, $model); + $this->_persist($modelClass, true, $this->{$modelClass}); $registry = ClassRegistry::getInstance(); $this->_persist($modelClass . 'registry', true, $registry->__objects, 'registry'); } diff --git a/cake/libs/object.php b/cake/libs/object.php index 091e4a2d1..666369963 100644 --- a/cake/libs/object.php +++ b/cake/libs/object.php @@ -263,15 +263,14 @@ class Object { case 'registry': $vars = unserialize(${$name}); foreach ($vars['0'] as $key => $value) { - if(strpos($key, '_behavior')) { - App::import('Behavior', Inflector::classify(str_replace('_behavior', '', $key))); - } else { - App::import('Model', Inflector::classify($key)); - } + App::import('Model', Inflector::classify($key)); } unset($vars); $vars = unserialize(${$name}); foreach ($vars['0'] as $key => $value) { + foreach ($vars['0'][$key]->Behaviors->_attached as $behavior) { + App::import('Behavior', $behavior); + } ClassRegistry::addObject($key, $value); unset ($value); }