Browse Source

Fixing bug with first level validation not showing

git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@4929 3807eeeb-6ff5-0310-8944-8be069107fe0
phpnut 19 years ago
parent
commit
d1e2b89c8b
1 changed files with 10 additions and 1 deletions
  1. 10 1
      cake/libs/controller/controller.php

+ 10 - 1
cake/libs/controller/controller.php

@@ -598,7 +598,16 @@ class Controller extends Object {
 
 		$this->__viewClass =& new $viewClass($this);
 		if (!empty($this->modelNames)) {
-			$models =& ClassRegistry::keys();
+			$models = array();
+			foreach($this->modelNames as $currentModel) {
+				if (isset($this->$currentModel) && is_a($this->$currentModel, 'Model')) {
+					$models[] = Inflector::underscore($currentModel);
+				}
+				if (isset($this->$currentModel) && is_a($this->$currentModel, 'Model') && !empty($this->$currentModel->validationErrors)) {
+					$this->__viewClass->validationErrors[Inflector::camelize($currentModel)] =& $this->$currentModel->validationErrors;
+				}
+			}
+			$models =& array_diff(ClassRegistry::keys(), $models);
 			foreach($models as $currentModel) {
 				if (ClassRegistry::isKeySet($currentModel)) {
 					$currentObject =& ClassRegistry::getObject($currentModel);