Example #1
0
 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]);
         }
     }
 }