Heim >PHP-Framework >Denken Sie an PHP >Datenvalidierung in ThinkPHP6 verstehen
ThinkPHP6 ist derzeit eines der beliebtesten PHP-Entwicklungsframeworks und viele PHP-Entwickler verwenden es gerne für die Entwicklung. Während des Entwicklungsprozesses ist die Datenüberprüfung ein sehr wichtiger Teil, da eine hervorragende Anwendung über eine Legalitätsüberprüfung der Benutzereingabedaten verfügen muss. In diesem Artikel stellen wir detailliert vor, wie die Datenvalidierung in ThinkPHP6 implementiert wird.
ThinkPHP6-Datenvalidierung basiert auf dem Konzept des Validators, das heißt, wir müssen ein Validatorobjekt erstellen, um die Daten zu validieren. Beim Erstellen eines Validierungsobjekts müssen wir Validierungsregeln dafür angeben und dann die Validierungsmethode zur Überprüfung aufrufen. Wenn die Überprüfung fehlschlägt, werden Informationen zum Überprüfungsfehler zurückgegeben, andernfalls wird „true“ zurückgegeben. Hier ist ein einfaches Beispiel:
use thinkValidate; $data = [ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com', 'age' => 18 ]; $validate = new Validate([ 'name' => 'require|max:25', 'email' => 'email', 'age' => 'number|between:1,120', ]); if (!$validate->check($data)) { dump($validate->getError()); }
Im obigen Code definieren wir zunächst ein Array $data, das die zu überprüfenden Daten enthält. Dann haben wir ein Validierungsobjekt $validate erstellt und drei Validierungsregeln dafür festgelegt: Das Feld „Name“ darf nicht leer sein und kann bis zu 25 Zeichen lang sein. Das Feld „E-Mail“ muss eine gültige E-Mail-Adresse sein Zwischen 1 und 120. Abschließend wird die Prüfmethode aufgerufen, um die Daten zu überprüfen. Schlägt die Überprüfung fehl, wird eine Fehlermeldung ausgegeben.
Im obigen Beispiel haben wir einige gängige Verifizierungsregeln verwendet, wie zum Beispiel: erforderlich, maximal, E-Mail, Nummer, zwischen usw. Im Folgenden stellen wir einige häufig verwendete Validierungsregeln und deren Verwendung vor.
Mit dieser Regel wird angegeben, dass das Feld nicht leer sein darf. Die Verwendung ist wie folgt:
'username' => 'require'
Diese Regel wird verwendet, um die maximale oder minimale Länge eines Feldes zu begrenzen. Die Verwendung ist wie folgt:
'username' => 'max:25' 'password' => 'min:8'
Diese Regel wird verwendet, um anzugeben, dass das Feld eine gültige E-Mail-Adresse sein muss. Die Verwendung ist wie folgt:
'email' => 'email'
Diese Regel wird verwendet, um anzugeben, dass das Feld nur Buchstaben oder alphanumerische Kombinationen enthalten darf. Die Verwendung ist wie folgt:
'username' => 'alpha' 'password' => 'alphaNum'
Diese Regel wird verwendet, um anzugeben, dass das Feld mit dem angegebenen regulären Ausdruck übereinstimmen muss. Die Verwendung ist wie folgt:
'username' => 'regex:^[a-z]+$'
Diese Regel wird verwendet, um anzugeben, dass der Feldwert in der Datenbank eindeutig sein muss. Die Verwendung ist wie folgt:
'email' => 'unique:user,email'
Im obigen Beispiel gibt der Parameter nach „unique“ an, dass in der Benutzertabelle der E-Mail-Feldwert eindeutig sein muss.
Mit dieser Regel wird angegeben, dass der Feldwert innerhalb des angegebenen Bereichs liegen muss. Die Verwendung ist wie folgt:
'gender' => 'in:0,1'
Diese Regel wird verwendet, um anzugeben, dass der Feldwert innerhalb des angegebenen Bereichs liegen muss. Die Verwendung ist wie folgt:
'age' => 'between:1,120'
Diese Regel wird verwendet, um anzugeben, dass zwei Felder gleich sein müssen. Die Verwendung ist wie folgt:
'password_confirm' => 'confirm:password'
Im obigen Beispiel erfordern wir, dass die beiden Felder „password_confirm“ und „password“ gleich sein müssen.
Manchmal müssen wir einige benutzerdefinierte Validierungsregeln verwenden, um bestimmte Anforderungen zu erfüllen. In diesem Fall können wir die Methode addRule verwenden, um die Validierungsregeln anzupassen. Wenn wir beispielsweise überprüfen möchten, ob der Inhalt eines Textfelds ein bestimmtes Schlüsselwort enthalten muss, können wir eine Regel wie diese definieren:
use thinkValidate; Validate::rule('my_rule', function($value, $rule) { return strpos($value, $rule) !== false; }); $validate = new Validate([ 'content' => 'my_rule:thinkphp' ]); if (!$validate->check($data)) { dump($validate->getError()); }
Im obigen Code haben wir zunächst eine benutzerdefinierte Regel my_rule über die statische Methode Regel registriert. Seine Verwendung ist die gleiche wie bei anderen Regeln. Anschließend haben wir diese Regel im Validator verwendet, um zu überprüfen, ob der Wert des Inhaltsfelds das Schlüsselwort thinkphp enthalten muss.
Manchmal müssen wir in verschiedenen Szenarien unterschiedliche Validierungsregeln für dasselbe Feld verwenden. Beispielsweise müssen wir in den beiden Szenarien der Benutzerregistrierung und Benutzeränderung unterschiedliche Validierungsregeln verwenden. Zu diesem Zeitpunkt können wir die Szenarioüberprüfung verwenden, um die Anforderungen zu erfüllen. Wir können den Szenarionamen beim Erstellen des Validatorobjekts angeben und dann für jedes Szenario unterschiedliche Validierungsregeln festlegen. Zum Beispiel:
use thinkValidate; $data = [ 'email' => 'thinkphp@qq.com', 'password' => '123456', ]; $validate = new Validate([ 'email' => 'require|email|unique:user,email', 'password' => 'require|min:6' ]); // 假设当前为用户修改资料场景 $validate->scene('edit', function($validate) { $validate->rule('email', 'require|email'); }); if (!$validate->scene('edit')->check($data)) { dump($validate->getError()); }
Im obigen Beispiel definieren wir zunächst ein Validatorobjekt $validate und legen die Validierungsregeln für die E-Mail- und Passwortfelder fest. Anschließend verwenden wir die Szenenmethode, um die aktuelle Szene als „Bearbeiten“ festzulegen und die Validierungsregeln für das E-Mail-Feld festzulegen. Zum Schluss rufen wir die Prüfmethode zur Überprüfung auf. Schlägt die Überprüfung fehl, wird eine Fehlermeldung ausgegeben.
ThinkPHP6 unterstützt mehrsprachige Validierungsfehlermeldungen. Dies können wir erreichen, indem wir entsprechende Fehlermeldungen in die Datei „validate.php“ einfügen. Wenn wir beispielsweise chinesische Fehlerinformationen zum E-Mail-Feld hinzufügen möchten, können wir diese wie folgt konfigurieren:
return [ 'email' => [ 'require' => '邮箱必须填写!', 'unique' => '该邮箱已被注册!', 'email' => '邮箱格式不正确!' ] ];
Diese Konfigurationsdatei wird in /config/validate.php gespeichert und wir können die entsprechenden Fehlerinformationen über getError abrufen Methode während der Überprüfung.
Das Obige ist die grundlegende Verwendung der Datenvalidierung in ThinkPHP6, einschließlich: Validierungsregeln, benutzerdefinierte Validierungsregeln, Szenariovalidierung und mehrsprachige Unterstützung. Die Verwendung dieser Funktionen kann uns helfen, Benutzereingabedaten einfacher zu überprüfen und die Sicherheit und Rechtmäßigkeit der Anwendung zu gewährleisten. Ich hoffe, dass dieser Artikel allen Entwicklern hilfreich sein wird!
Das obige ist der detaillierte Inhalt vonDatenvalidierung in ThinkPHP6 verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!