Heim > PHP-Framework > Denken Sie an PHP > Datenvalidierung in ThinkPHP6 verstehen

Datenvalidierung in ThinkPHP6 verstehen

WBOY
Freigeben: 2023-06-20 22:45:08
Original
1839 Leute haben es durchsucht

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.

  1. Grundidee

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());
}
Nach dem Login kopieren

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.

  1. Detaillierte Erläuterung der Verifizierungsregeln

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.

  1. require

Mit dieser Regel wird angegeben, dass das Feld nicht leer sein darf. Die Verwendung ist wie folgt:

'username' => 'require'
Nach dem Login kopieren
  1. max,min

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'
Nach dem Login kopieren
  1. email

Diese Regel wird verwendet, um anzugeben, dass das Feld eine gültige E-Mail-Adresse sein muss. Die Verwendung ist wie folgt:

'email' => 'email'
Nach dem Login kopieren
  1. alpha,alphaNum

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'
Nach dem Login kopieren
  1. regex

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]+$'
Nach dem Login kopieren
  1. unique

Diese Regel wird verwendet, um anzugeben, dass der Feldwert in der Datenbank eindeutig sein muss. Die Verwendung ist wie folgt:

'email' => 'unique:user,email'
Nach dem Login kopieren

Im obigen Beispiel gibt der Parameter nach „unique“ an, dass in der Benutzertabelle der E-Mail-Feldwert eindeutig sein muss.

  1. in

Mit dieser Regel wird angegeben, dass der Feldwert innerhalb des angegebenen Bereichs liegen muss. Die Verwendung ist wie folgt:

'gender' => 'in:0,1'
Nach dem Login kopieren
  1. between

Diese Regel wird verwendet, um anzugeben, dass der Feldwert innerhalb des angegebenen Bereichs liegen muss. Die Verwendung ist wie folgt:

'age' => 'between:1,120'
Nach dem Login kopieren
  1. confirm

Diese Regel wird verwendet, um anzugeben, dass zwei Felder gleich sein müssen. Die Verwendung ist wie folgt:

'password_confirm' => 'confirm:password'
Nach dem Login kopieren

Im obigen Beispiel erfordern wir, dass die beiden Felder „password_confirm“ und „password“ gleich sein müssen.

  1. Benutzerdefinierte Validierungsregeln

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());
}
Nach dem Login kopieren

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.

  1. Szenarioüberprüfung

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());
}
Nach dem Login kopieren

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.

  1. Mehrsprachige Unterstützung

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'   => '邮箱格式不正确!'
    ]
];
Nach dem Login kopieren

Diese Konfigurationsdatei wird in /config/validate.php gespeichert und wir können die entsprechenden Fehlerinformationen über getError abrufen Methode während der Überprüfung.

  1. Ende

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage