private function validate($data)
{
if (!$this->dbFields) {
return true;
}
foreach ($this->dbFields as $key => $desc) {
$type = null;
$required = false;
if (isset($data[$key])) {
$value = $data[$key];
} else {
$value = null;
}
if (is_array($value)) {
continue;
}
if (isset($desc[0])) {
$type = $desc[0];
}
if (isset($desc[1]) && $desc[1] == 'required') {
$required = true;
}
if ($required && strlen($value) == 0) {
$this->errors[] = array($this->dbTable . "." . $key => "is required");
continue;
}
if ($value == null) {
continue;
}
switch ($type) {
case "text":
$regexp = null;
break;
case "int":
$regexp = "/^[0-9]*\$/";
break;
case "double":
$regexp = "/^[0-9\\.]*\$/";
break;
case "bool":
$regexp = '/^[yes|no|0|1|true|false]$/i';
break;
case "datetime":
$regexp = "/^[0-9a-zA-Z -:]*\$/";
break;
default:
$regexp = $type;
break;
}
if (!$regexp) {
continue;
}
if (!preg_match($regexp, $value)) {
$this->errors[] = array($this->dbTable . "." . $key => "{$type} validation failed");
continue;
}
}
return !count($this->errors) > 0;
}