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);
         }
     }
 }
Esempio n. 2
0
 /**
  * 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;
 }