Heim > PHP-Framework > Denken Sie an PHP > So verwenden Sie Validatoren in ThinkPHP6

So verwenden Sie Validatoren in ThinkPHP6

王林
Freigeben: 2023-06-21 09:45:18
Original
3206 Leute haben es durchsucht

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'         =>  '邮箱格式错误',
    ];
}
Nach dem Login kopieren

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 {
            // 验证成功
        }
    }
}
Nach dem Login kopieren

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
  1. Manchmal können die Felder, die für verschiedene Vorgänge überprüft werden müssen, unterschiedlich sein. Zu diesem Zeitpunkt können wir die Szenarioüberprüfung verwenden, um dieses Problem zu lösen. In ThinkPHP6 können wir verschiedene Szenarien in der Validator-Klasse definieren und das aktuelle Szenario angeben, das im Controller verwendet werden muss. 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'         =>  '邮箱格式错误',
    ];

    protected $scene = [
        'add'   =>  ['name', 'email'],
        'edit'  =>  ['name'],
    ];
}
Nach dem Login kopieren

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 {
    // 验证成功
}
Nach dem Login kopieren

Benutzerdefinierte Validierungsregeln
  1. Zusätzlich zu den integrierten Validierungsregeln können wir Validierungsregeln auch an spezifische Anforderungen anpassen. In ThinkPHP6 können wir über die addRule-Methode benutzerdefinierte Validierungsregeln hinzufügen. Hier ist ein Beispiel:
<?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;
        }
    }
}
Nach dem Login kopieren

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!

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