public static function price($field) { if (Request::param($field) === null) { return; } if (strval(floatval(Request::param($field))) != Request::param($field) || Request::param($field) >= 1000000000) { Request::error(lng("wrong_price_format"), $field); } }
public function validate($data, $relations) { foreach ($data as $k => $v) { $matches = array(); if (!preg_match("/(varchar|int|decimal)\\((\\d+)(,(\\d+))?\\)/i", $this->fields[$k], $matches)) { continue; } $sql_type = $matches[1]; $sql_size = $matches[2]; switch ($sql_type) { case 'varchar': $data_length = strlen($v); break; case 'int': case 'decimal': $data_length = strlen(floor(abs($v))); break; } if ($sql_size >= $data_length) { continue; } if (empty($relations[$k])) { Request::error('Максимальная длина параметра превышена на ' . ($data_length - $sql_size), $k); } else { Request::error('Максимальная длина параметра превышена на ' . ($data_length - $sql_size), $relations[$k]); } } }