Валидация — одна из самых частых и повторяющихся задач в веб-приложении. Пользователь вводит необходимые данные в форму и отправляет их. Затем веб-приложение должно проверить данные перед обработкой данных. Например, пользователь вводит данные сотрудника, и post_action необходимо проверить перед сохранением в базе данных. Для этой цели FuelPHP предлагает действительно простой класс Validation.
В FuelPHP концепция проверки очень проста, и она предоставляет различные методы через класс Validation для правильной проверки формы. Ниже приводится рабочий процесс проверки,
Шаг 1 — Создайте новый объект валидации, используя метод forge .
$val = Validation::forge();
Шаг 2 — Добавьте поля, которые необходимо проверить, используя метод add.
$val->add('name', 'Employee name');
Шаг 3 — Установите правила проверки для добавленных полей, используя метод add_rule .
$val->add('name', 'Employee name')->add_rule('required'); $val->add('age', 'Employee age')->add_rule('required') ->add_rule('numeric_min', 20) ->add_rule('numeric_max', 30);
Шаг 4 — Вызовите метод run для проверки данных.
// run validation on just post if ($val->run()) { // success } else { // falier }
Шаг 5 — Используйте validated и error, чтобы получить действительные и недействительные поля соответственно.
$vars = $val->validated(); $vars = $val->error();
правила
FuelPHP содержит множество правил для проверки, а также предоставляет возможность создавать новые правила. Правила, поддерживаемые классом Validation:
-
требуется — значение для ввода
-
required_with — установить другое поле в качестве сопутствующего поля. Если поле установлено, то поля-компаньоны также должны быть установлены
-
match_value — устанавливает значение для сопоставления со значением поля
-
match_pattern — устанавливает значение для сопоставления как регулярное выражение со значением поля
-
match_field — установить значение другого поля в качестве значения для сопоставления со значением поля
-
match_collection — устанавливает значение для сопоставления как коллекции со значением поля
-
min_length — устанавливает минимальную длину значения поля
-
max_length — устанавливает максимальную длину значения поля
-
точная длина — установить точную длину значения поля
-
valid_date — устанавливает значение поля на правильную дату
-
valid_email — установить значение поля в действительный адрес электронной почты
-
valid_emails — установить значение поля в действительные электронные письма, разделенные запятой
-
valid_url — установить значение поля в действительный URL
-
valid_ip — установить значение поля в действительный IP
-
numeric_min — установить минимальное значение значения поля
-
numeric_max — устанавливает максимальное значение значения поля
-
numeric_between — устанавливает минимальное и максимальное значение значения поля
-
valid_string — похож на регулярное выражение, но проще
требуется — значение для ввода
required_with — установить другое поле в качестве сопутствующего поля. Если поле установлено, то поля-компаньоны также должны быть установлены
match_value — устанавливает значение для сопоставления со значением поля
match_pattern — устанавливает значение для сопоставления как регулярное выражение со значением поля
match_field — установить значение другого поля в качестве значения для сопоставления со значением поля
match_collection — устанавливает значение для сопоставления как коллекции со значением поля
min_length — устанавливает минимальную длину значения поля
max_length — устанавливает максимальную длину значения поля
точная длина — установить точную длину значения поля
valid_date — устанавливает значение поля на правильную дату
valid_email — установить значение поля в действительный адрес электронной почты
valid_emails — установить значение поля в действительные электронные письма, разделенные запятой
valid_url — установить значение поля в действительный URL
valid_ip — установить значение поля в действительный IP
numeric_min — установить минимальное значение значения поля
numeric_max — устанавливает максимальное значение значения поля
numeric_between — устанавливает минимальное и максимальное значение значения поля
valid_string — похож на регулярное выражение, но проще
$val->add('username', 'User name')->add_rule('valid_string', array('alpha, dots');
Здесь альфа обозначает алфавитные символы, а точки — (.). Допустимая строка — это только строка, содержащая алфавитный символ и (.). Другие варианты: прописные, строчные, специальные, числовые, пробелы и т. Д.
Рабочий пример
Мы можем обновить функцию добавления сотрудника, чтобы включить проверку. Просто обновите метод post_add контроллера сотрудника следующим образом.
public function post_add() { $val = Validation::forge(); $val->add('name', 'Employee name')->add_rule('required'); $val->add('age', 'Employee age')->add_rule('required') ->add_rule('numeric_min', 20) ->add_rule('numeric_max', 30); if ($val->run()) { $name = Input::post('name'); $age = Input::post('age'); $model = new model_employee(); $model->name = $name; $model->age = $age; $model->save(); Response::redirect('employee/list'); } else { Response::redirect('employee/add'); } }
Здесь мы указали имя и возраст в качестве обязательных полей. Возраст должен быть от 20 до 30 лет. Если оба правила действительны, данные о сотрудниках будут сохранены и перенаправлены на страницу со списком сотрудников. В противном случае данные сотрудника будут отклонены и перенаправлены для добавления страницы сотрудника.