Skip to content

Commit

Permalink
simplify validation code
Browse files Browse the repository at this point in the history
  • Loading branch information
dogmatic69 committed Dec 3, 2012
1 parent 9bcc05b commit 24abed9
Showing 1 changed file with 15 additions and 24 deletions.
39 changes: 15 additions & 24 deletions lib/Cake/Model/ModelValidator.php
Expand Up @@ -130,11 +130,10 @@ public function validateAssociated(&$data, $options = array()) {
$options = array_merge(array('atomic' => true, 'deep' => false), $options); $options = array_merge(array('atomic' => true, 'deep' => false), $options);
$model->validationErrors = $validationErrors = $return = array(); $model->validationErrors = $validationErrors = $return = array();
$model->create(null); $model->create(null);
$return[$model->alias] = true;
if (!($model->set($data) && $model->validates($options))) { if (!($model->set($data) && $model->validates($options))) {
$validationErrors[$model->alias] = $model->validationErrors; $validationErrors[$model->alias] = $model->validationErrors;
$return[$model->alias] = false; $return[$model->alias] = false;
} else {
$return[$model->alias] = true;
} }
$data = $model->data; $data = $model->data;
if (!empty($options['deep']) && isset($data[$model->alias])) { if (!empty($options['deep']) && isset($data[$model->alias])) {
Expand All @@ -156,10 +155,9 @@ public function validateAssociated(&$data, $options = array()) {
$data[$association] = $model->{$association}->data[$model->{$association}->alias]; $data[$association] = $model->{$association}->data[$model->{$association}->alias];
} }
if (is_array($validates)) { if (is_array($validates)) {
$validates = true;
if (in_array(false, Hash::flatten($validates), true)) { if (in_array(false, Hash::flatten($validates), true)) {
$validates = false; $validates = false;
} else {
$validates = true;
} }
} }
$return[$association] = $validates; $return[$association] = $validates;
Expand Down Expand Up @@ -219,22 +217,18 @@ public function validateMany(&$data, $options = array()) {
$validates = $model->set($record) && $model->validates($options); $validates = $model->set($record) && $model->validates($options);
$data[$key] = $model->data; $data[$key] = $model->data;
} }
$validates = true;
if ($validates === false || (is_array($validates) && in_array(false, Hash::flatten($validates), true))) { if ($validates === false || (is_array($validates) && in_array(false, Hash::flatten($validates), true))) {
$validationErrors[$key] = $model->validationErrors; $validationErrors[$key] = $model->validationErrors;
$validates = false; $validates = false;
} else {
$validates = true;
} }
$return[$key] = $validates; $return[$key] = $validates;
} }
$model->validationErrors = $validationErrors; $model->validationErrors = $validationErrors;
if (!$options['atomic']) { if (!$options['atomic']) {
return $return; return $return;
} }
if (empty($model->validationErrors)) { return empty($model->validationErrors);
return true;
}
return false;
} }


/** /**
Expand Down Expand Up @@ -322,9 +316,10 @@ public function getMethods() {
*/ */
public function getField($name = null) { public function getField($name = null) {
$this->_parseRules(); $this->_parseRules();
if ($name !== null && !empty($this->_fields[$name])) { if ($name !== null) {
return $this->_fields[$name]; if (!empty($this->_fields[$name])) {
} elseif ($name !== null) { return $this->_fields[$name];
}
return null; return null;
} }
return $this->_fields; return $this->_fields;
Expand Down Expand Up @@ -401,16 +396,15 @@ protected function _validationList($fieldList = array()) {
unset($fieldList); unset($fieldList);


$validateList = array(); $validateList = array();
if (!empty($whitelist)) { if (empty($whitelist)) {
$this->validationErrors = array(); return $this->_fields;
}


foreach ((array)$whitelist as $f) { $this->validationErrors = array();
if (!empty($this->_fields[$f])) { foreach ((array)$whitelist as $f) {
$validateList[$f] = $this->_fields[$f]; if (!empty($this->_fields[$f])) {
} $validateList[$f] = $this->_fields[$f];
} }
} else {
return $this->_fields;
} }


return $validateList; return $validateList;
Expand Down Expand Up @@ -443,9 +437,6 @@ protected function _validateWithModels($options) {
$newData[] = $row[$join]; $newData[] = $row[$join];
} }
} }
if (empty($newData)) {
continue;
}
foreach ($newData as $data) { foreach ($newData as $data) {
$data[$model->hasAndBelongsToMany[$assoc]['foreignKey']] = $model->id; $data[$model->hasAndBelongsToMany[$assoc]['foreignKey']] = $model->id;
$model->{$join}->create($data); $model->{$join}->create($data);
Expand Down

0 comments on commit 24abed9

Please sign in to comment.