Heim > Artikel > PHP-Framework > So verwenden Sie Validatoren in ThinkPHP6
Mit der kontinuierlichen Entwicklung des Internets beginnen immer mehr Menschen, PHP für die Website-Entwicklung zu verwenden. In PHP kann die Verwendung von Frameworks die Entwicklungseffizienz erheblich verbessern, und ThinkPHP ist ein sehr beliebtes Framework. In ThinkPHP ist der Validator eine sehr wichtige Komponente, die uns dabei helfen kann, die von Benutzern übermittelten Daten zu überprüfen, um die Richtigkeit der Daten sicherzustellen. In diesem Artikel wird daher die Verwendung von Validatoren in ThinkPHP6 vorgestellt.
1. Was ist ein Validator? Ein Validator ist ein Tool zur Überprüfung von Daten. Er kann das Format, die Länge, die Rechtmäßigkeit usw. der von Benutzern übermittelten Daten überprüfen, um die Richtigkeit der Daten sicherzustellen. In ThinkPHP6 ist der Validator eine unabhängige Komponente und Sie können einen benutzerdefinierten Validator implementieren, indem Sie die Validation-Klasse erben.
2. Grundlegende Verwendung des Validators
In ThinkPHP6 ist die Verwendung des Validators sehr einfach. Zuerst müssen wir eine Validatorklasse definieren, um die zu validierenden Felder und die entsprechenden Validierungsregeln anzugeben. Hier ist ein Beispiel:
<?php namespace appindexalidate; use thinkValidate; class User extends Validate { protected $rule = [ 'name' => 'require|max:25', 'email' => 'email', ]; protected $message = [ 'name.require' => '名称不能为空', 'name.max' => '名称最多不能超过25个字符', 'email' => '邮箱格式错误', ]; }
Im obigen Code definieren wir zunächst eine Validatorklasse namens „User“, die die zu validierenden Felder und die entsprechenden Validierungsregeln angibt. Beispielsweise muss das Namensfeld den Regeln entsprechen, dass es nicht leer sein darf und maximal 25 Zeichen lang sein darf, und das E-Mail-Feld muss den Regeln des E-Mail-Formats entsprechen. Gleichzeitig definieren wir auch ein $message-Array, um die Fehlermeldung jeder Verifizierungsregel zu speichern.
Nachdem wir die Validatorklasse definiert haben, können wir diesen Validator im Controller verwenden, um Daten zu überprüfen. Hier ist ein Beispiel:
<?php namespace appindexcontroller; use thinkController; use appindexalidateUser; class Index extends Controller { public function index() { $data = [ 'name' => 'Tom', 'email' => 'test@example.com', ]; $validate = new User(); if (!$validate->check($data)) { dump($validate->getError()); // 验证失败 } else { // 验证成功 } } }
Im obigen Code definieren wir zunächst ein $data-Array, um die Daten zu speichern, die überprüft werden müssen. Anschließend instanziieren wir ein Benutzervalidierungsobjekt und verwenden die Prüfmethode, um das Array „$data“ zu überprüfen. Wenn die Überprüfung fehlschlägt, können Sie die Fehlermeldung mit der Methode getError abrufen. Wenn die Überprüfung erfolgreich ist, können Sie mit anderen Vorgängen fortfahren.
3. Erweiterte Verwendung von Validatoren
Zusätzlich zu den grundlegenden Validierungsregeln bietet ThinkPHP6 auch viele erweiterte Validatorfunktionen, um komplexere Validierungsanforderungen zu erfüllen.
Szenarioüberprüfung<?php namespace appindexalidate; use thinkValidate; class User extends Validate { protected $rule = [ 'name' => 'require|max:25', 'email' => 'email', ]; protected $message = [ 'name.require' => '名称不能为空', 'name.max' => '名称最多不能超过25个字符', 'email' => '邮箱格式错误', ]; protected $scene = [ 'add' => ['name', 'email'], 'edit' => ['name'], ]; }
Im obigen Code definieren wir zwei Szenarien, nämlich Hinzufügen und Bearbeiten. Unter anderem erfordert das Szenario „Hinzufügen“ eine Überprüfung der Namens- und E-Mail-Felder, während das Szenario „Bearbeiten“ nur eine Überprüfung des Namensfelds erfordert. Auf diese Weise können Sie bei Verwendung im Controller die aktuelle Szene angeben, die verwendet werden muss.
$data = input('post.'); $validate = new User(); if (!$validate->scene('add')->check($data)) { // 验证失败 } else { // 验证成功 }Benutzerdefinierte Validierungsregeln
<?php namespace appindexalidate; use thinkValidate; class User extends Validate { protected $rule = [ 'email' => 'email|checkEmail', ]; protected $message = [ 'email.email' => '邮箱格式错误', 'email.checkEmail' => '邮箱不允许注册', ]; protected function checkEmail($value, $rule, $data) { if (in_array($value, ['admin@example.com', 'superadmin@example.com'])) { return false; } else { return true; } } }
Im obigen Code fügen wir zunächst eine checkEmail-Regel in den Validierungsregeln des Felds $email hinzu. Anschließend wird die Fehlermeldung der checkEmail-Regel im Array $message definiert. Schließlich wird in der Validate-Klasse eine checkEmail-Methode definiert, um unsere benutzerdefinierte Verifizierungslogik zu implementieren (in diesem Beispiel sind die beiden E-Mail-Adressen admin@example.com und superadmin@example.com nicht zulässig). Auf diese Weise wird bei der Datenüberprüfung automatisch die checkEmail-Methode zur Überprüfung aufgerufen.
Die oben genannten sind die grundlegenden Methoden und die erweiterte Verwendung von Validatoren in ThinkPHP6. Der Validator ist eine sehr wichtige Komponente, die die Richtigkeit unserer Daten sicherstellen und außerdem die Lesbarkeit und Wartbarkeit des Codes verbessern kann. In der tatsächlichen Entwicklung sollten wir den Validator entsprechend der tatsächlichen Situation flexibel einsetzen, um unsere Entwicklungsarbeit zu unterstützen.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Validatoren in ThinkPHP6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!