Exemple #1
0
 /**
  * Execute validation for all of request values
  *
  * @param array $data Request data
  * @return boolean
  */
 public function validate($data)
 {
     foreach ($this->_rules as $item => $rules) {
         foreach ($rules as $ruleInfo) {
             $rule = $ruleInfo['rule'];
             $method = NameManager::convertToCamel($rule);
             if (!method_exists($this, $method)) {
                 continue;
             }
             $message = '';
             if (isset($ruleInfo['error_message'])) {
                 $message = $ruleInfo['error_message'];
             } else {
                 if (isset(self::$_messages[$rule])) {
                     $message = self::$_messages[$rule];
                 }
             }
             if ($message == '') {
                 throw new Exception('Error message of rule "' . $rule . '" is not specified.');
             }
             $res = $this->{$method}($data[$item], $ruleInfo);
             if ($res == false) {
                 foreach ($ruleInfo as $key => $val) {
                     $message = str_replace('%' . $key . '%', $val, $message);
                 }
                 $this->_errors[$item] = $message;
                 break;
             }
         }
     }
     if ($this->_errors) {
         return false;
     }
     return true;
 }