Учебники

FuelPHP — валидация

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