FuelPHP - Validação
Validationé uma das tarefas frequentes e mais repetidas em um aplicativo da web. O usuário insere os dados necessários no formulário e os envia. Em seguida, o aplicativo da web precisa validar os dados antes de processá-los. Por exemplo, o usuário insere os dados do funcionário e o post_action precisa validar antes de salvá-lo no banco de dados. O FuelPHP fornece uma classe realmente simples, Validation, para esse propósito.
No FuelPHP, o conceito de validação é muito simples e fornece vários métodos por meio da classe Validation para validar adequadamente o formulário. A seguir está o fluxo de trabalho da validação,
Step 1 - Crie um novo objeto de validação usando forge método.
$val = Validation::forge();
Step 2 - Adicione os campos que precisam ser validados usando o método add.
$val->add('name', 'Employee name');
Step 3 - Defina as regras de validação para os campos adicionados usando add_rule método.
$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);
Step 4 - Chame o método run para validar os dados.
// run validation on just post
if ($val->run()) {
// success
} else {
// falier
}
Step 5 - Use validado e erro para obter os campos válidos e inválidos, respectivamente.
$vars = $val->validated();
$vars = $val->error();
Regras
FuelPHP contém muitas regras para validar e também oferece uma opção para criar novas regras. As regras suportadas pela classe de validação são as seguintes,
required - Valor a ser inserido
required_with- Defina outro campo como campo complementar. Se o campo for definido, os campos complementares também precisam ser definidos
match_value - Defina o valor a ser combinado com o valor do campo
match_pattern - Defina o valor a ser correspondido como uma expressão regular com o valor do campo
match_field - Defina o valor de outro campo como valor a ser combinado com o valor do campo
match_collection - Defina o valor a ser correspondido como coleção com o valor do campo
min_length - Defina o comprimento mínimo do valor do campo
max_length - Defina o comprimento máximo do valor do campo
exact_length - Defina o comprimento exato do valor do campo
valid_date - Defina o valor do campo para uma data válida
valid_email - Defina o valor do campo como um e-mail válido
valid_emails - Defina o valor do campo para e-mails válidos, separados por vírgula
valid_url - Defina o valor do campo para um URL válido
valid_ip - Defina o valor do campo para um IP válido
numeric_min - Defina o valor mínimo do valor do campo
numeric_max - Defina o valor máximo do valor do campo
numeric_between - Defina o valor mínimo e máximo do valor do campo
valid_string - Semelhante ao regex, mas mais simples
$val->add('username', 'User name')->add_rule('valid_string', array('alpha, dots');
Aqui, alfa se refere a caracteres alfabéticos e os pontos se referem a (.). A string válida é apenas a string que contém o caractere alfabético e (.). As outras opções são maiúsculas, minúsculas, especiais, numéricos, espaços, etc.
Exemplo de Trabalho
Podemos atualizar o recurso de adicionar funcionário para incluir a validação. Basta atualizar opost_add método do controlador de funcionário como segue.
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');
}
}
Aqui, especificamos o namee idade como campos obrigatórios. oagedeve estar entre 20 e 30. Se ambas as regras forem válidas, os dados do funcionário serão salvos e redirecionados para a página da lista de funcionários. Caso contrário, os dados do funcionário serão rejeitados e redirecionados para adicionar a página do funcionário.