FuelPHP - Validierung
Validationist eine der häufigsten und am häufigsten wiederholten Aufgaben in einer Webanwendung. Der Benutzer gibt die erforderlichen Daten in das Formular ein und übermittelt sie. Anschließend muss die Webanwendung die Daten validieren, bevor die Daten verarbeitet werden. Beispielsweise gibt der Benutzer die Mitarbeiterdaten ein und die post_action muss validiert werden, bevor sie in der Datenbank gespeichert wird. FuelPHP bietet eine wirklich einfache Klasse, Validierung für diesen Zweck.
In FuelPHP ist das Konzept der Validierung sehr einfach und bietet verschiedene Methoden über die Validierungsklasse, um das Formular ordnungsgemäß zu validieren. Es folgt der Workflow der Validierung:
Step 1 - Erstellen Sie ein neues Validierungsobjekt mit forge Methode.
$val = Validation::forge();
Step 2 - Fügen Sie die Felder hinzu, die mit der Methode add validiert werden müssen.
$val->add('name', 'Employee name');
Step 3 - Legen Sie die Validierungsregeln für die hinzugefügten Felder mit fest add_rule Methode.
$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 - Rufen Sie die run-Methode auf, um die Daten zu validieren.
// run validation on just post
if ($val->run()) {
// success
} else {
// falier
}
Step 5 - Verwenden Sie validated und error, um die gültigen bzw. ungültigen Felder abzurufen.
$vars = $val->validated();
$vars = $val->error();
Regeln
FuelPHP enthält viele zu validierende Regeln und bietet auch die Möglichkeit, neue Regeln zu erstellen. Die von der Validierungsklasse unterstützten Regeln lauten wie folgt:
required - einzugebender Wert
required_with- Legen Sie ein anderes Feld als Begleitfeld fest. Wenn das Feld festgelegt ist, müssen auch Begleitfelder festgelegt werden
match_value - Stellen Sie den Wert ein, der mit dem Feldwert übereinstimmen soll
match_pattern - Legen Sie den Wert fest, der als regulärer Ausdruck mit dem Feldwert abgeglichen werden soll
match_field - Legen Sie den Wert eines anderen Felds als Wert fest, der mit dem Feldwert übereinstimmt
match_collection - Legen Sie den Wert fest, der als Sammlung mit dem Feldwert abgeglichen werden soll
min_length - Stellen Sie die Mindestlänge des Feldwerts ein
max_length - Legen Sie die maximale Länge des Feldwerts fest
exact_length - Stellen Sie die genaue Länge des Feldwerts ein
valid_date - Setzen Sie den Feldwert auf ein gültiges Datum
valid_email - Setzen Sie den Wert des Feldes auf eine gültige E-Mail
valid_emails - Setzen Sie den Wert des Feldes auf gültige E-Mails, die durch Kommas getrennt sind
valid_url - Setzen Sie den Feldwert auf eine gültige URL
valid_ip - Setzen Sie den Feldwert auf eine gültige IP
numeric_min - Stellen Sie den Mindestwert des Feldwerts ein
numeric_max - Stellen Sie den Maximalwert des Feldwerts ein
numeric_between - Stellen Sie den minimalen und maximalen Wert des Feldwerts ein
valid_string - Ähnlich wie Regex, aber einfacher
$val->add('username', 'User name')->add_rule('valid_string', array('alpha, dots');
Hier bezieht sich Alpha auf alphabetische Zeichen und Punkte auf (.). Die gültige Zeichenfolge ist nur die Zeichenfolge, die das alphabetische Zeichen und (.) Enthält. Die anderen Optionen sind Groß-, Klein-, Sonder-, Zahlen-, Leerzeichen usw.
Arbeitsbeispiel
Wir können die Funktion zum Hinzufügen von Mitarbeitern aktualisieren, um die Validierung einzuschließen. Aktualisieren Sie einfach diepost_add Methode des Mitarbeiter-Controllers wie folgt.
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');
}
}
Hier haben wir die angegeben nameund Alter als die erforderlichen Felder. Dasagemuss zwischen 20 und 30 liegen. Wenn beide Regeln gültig sind, werden die Mitarbeiterdaten gespeichert und auf die Mitarbeiterlistenseite umgeleitet. Andernfalls werden Mitarbeiterdaten abgelehnt und zum Hinzufügen einer Mitarbeiterseite umgeleitet.