Учебники

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 лет. Если оба правила действительны, данные о сотрудниках будут сохранены и перенаправлены на страницу со списком сотрудников. В противном случае данные сотрудника будут отклонены и перенаправлены для добавления страницы сотрудника.