protected function setupModelValidator(Sabel_Validator $validator) { $metadata = $this->model->getMetadata(); $columns = $metadata->getColumns(); $validators = $this->validators; foreach ($this->inputNames as $inputName) { if (!isset($columns[$inputName])) { continue; } $column = $columns[$inputName]; if ($column->increment) { continue; } if (!$column->nullable) { $validator->add($column->name, "required"); } if ($column->isString()) { $validator->add($column->name, "strwidth({$column->max})"); } elseif ($column->isNumeric()) { $validator->add($column->name, "max({$column->max})"); $validator->add($column->name, "min({$column->min})"); if ($column->isInt()) { $validator->add($column->name, "integer"); } else { // float, double $validator->add($column->name, "numeric"); } } elseif ($column->isBoolean()) { $validator->add($column->name, "boolean"); } elseif ($column->isDate()) { $validator->add($column->name, "date"); } elseif ($column->isDatetime()) { $validator->add($column->name, "datetime"); } } }
protected function setupValidator(Sabel_Validator $validator) { $keys = array(); $validators = $this->validators; foreach ($this->inputNames as $inputName) { $keys[$inputName] = true; if (!isset($validators[$inputName])) { continue; } $validator->add($inputName, $validators[$inputName]); unset($validators[$inputName]); } if ($validators) { foreach ($validators as $inputName => $v) { if (strpos($inputName, ",") === false) { continue; } $comp = true; foreach (explode(",", $inputName) as $_inputName) { if (!isset($keys[$_inputName])) { $comp = false; break; } } if ($comp) { $validator->add($inputName, $v); } } } }