FuelPHP - Validazione

Validationè una delle attività frequenti e più ripetute in un'applicazione web. L'utente inserisce i dati richiesti nel modulo e li invia. Quindi, l'applicazione Web deve convalidare i dati prima di elaborare i dati. Ad esempio, l'utente inserisce i dati del dipendente e post_action deve essere convalidato prima di salvarlo nel database. FuelPHP fornisce una classe molto semplice, Validation per questo scopo.

In FuelPHP, il concetto di validazione è molto semplice e fornisce vari metodi attraverso la classe Validation per validare adeguatamente il form. Di seguito è riportato il flusso di lavoro della convalida,

Step 1 - Crea un nuovo oggetto di convalida utilizzando forge metodo.

$val = Validation::forge();

Step 2 - Aggiungere i campi che devono essere convalidati utilizzando il metodo add.

$val->add('name', 'Employee name');

Step 3 - Impostare le regole di convalida per i campi aggiunti utilizzando add_rule metodo.

$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 - Chiama il metodo run per convalidare i dati.

// run validation on just post 
if ($val->run()) { 
   // success 
} else { 
   // falier 
}

Step 5 - Usa convalidato e errore per ottenere rispettivamente i campi valido e non valido.

$vars = $val->validated(); 
$vars = $val->error();

Regole

FuelPHP contiene molte regole da convalidare e fornisce anche un'opzione per creare nuove regole. Le regole supportate dalla classe Validation sono le seguenti,

  • required - Valore da inserire

  • required_with- Imposta un altro campo come campo associato. Se il campo è impostato, è necessario impostare anche i campi associati

  • match_value - Imposta il valore da abbinare al valore del campo

  • match_pattern - Imposta il valore da abbinare come espressione regolare al valore del campo

  • match_field - Imposta il valore di un altro campo come valore da abbinare al valore del campo

  • match_collection - Imposta il valore da abbinare come raccolta al valore del campo

  • min_length - Imposta la lunghezza minima del valore del campo

  • max_length - Imposta la lunghezza massima del valore del campo

  • exact_length - Imposta la lunghezza esatta del valore del campo

  • valid_date - Imposta il valore del campo su una data valida

  • valid_email - Imposta il valore del campo su un indirizzo email valido

  • valid_emails - Imposta il valore del campo su email valide, separate da virgola

  • valid_url - Imposta il valore del campo su un URL valido

  • valid_ip - Imposta il valore del campo su un IP valido

  • numeric_min - Imposta il valore minimo del valore del campo

  • numeric_max - Imposta il valore massimo del valore del campo

  • numeric_between - Imposta il valore minimo e massimo del valore del campo

  • valid_string - Simile a regex ma più semplice

$val->add('username', 'User name')->add_rule('valid_string', array('alpha, dots');

In questo caso, alpha si riferisce a caratteri alfabetici e punti a (.). La stringa valida è solo la stringa che contiene caratteri alfabetici e (.). Le altre opzioni sono maiuscole, minuscole, speciali, numeriche, spazi, ecc.

Esempio di lavoro

Possiamo aggiornare la funzione Aggiungi dipendente per includere la convalida. Basta aggiornare il filepost_add metodo del controller dei dipendenti come 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'); 
   } 
}

Qui abbiamo specificato il file namee l'età come campi obbligatori. Ilagedeve essere compreso tra 20 e 30. Se entrambe le regole sono valide, i dati dei dipendenti verranno salvati e reindirizzati alla pagina dell'elenco dei dipendenti. In caso contrario, i dati dei dipendenti verranno rifiutati e reindirizzati alla pagina dei dipendenti.