Валидация – одна из самых частых и повторяющихся задач в веб-приложении. Пользователь вводит необходимые данные в форму и отправляет их. Затем веб-приложение должно проверить данные перед обработкой данных. Например, пользователь вводит данные сотрудника, и 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 лет. Если оба правила действительны, данные о сотрудниках будут сохранены и перенаправлены на страницу со списком сотрудников. В противном случае данные сотрудника будут отклонены и перенаправлены для добавления страницы сотрудника.