protected function _validateCollection($data, $ruleset) { foreach ($data as $field => $value) { if (is_array($value) && isset($ruleset["_{$field}"])) { $status &= $this->_validateCollection($data[$field], $ruleset["_{$field}"]); continue; } if (!isset($ruleset[$field])) { continue; } $obj = new CakeValidationSet($field, $ruleset[$field]); $obj->setMethods($this->_methods[$this->_Model->name]); $errors = $obj->validate($data); foreach ($errors as $error) { $this->_Model->invalidate($field, $error); } } }
/** * Sets the rule set for a field * * @param string $field name of the field to set * @param array|CakeValidationSet $rules set of rules to apply to field * @return void */ public function offsetSet($field, $rules) { $this->_parseRules(); if (!$rules instanceof CakeValidationSet) { $rules = new CakeValidationSet($field, $rules); $methods = $this->getMethods(); $rules->setMethods($methods); } $this->_fields[$field] = $rules; }