Heim  >  Artikel  >  PHP-Framework  >  So verwenden Sie die Änderungsfunktion der automatischen Überprüfung von ThinkPHP

So verwenden Sie die Änderungsfunktion der automatischen Überprüfung von ThinkPHP

WBOY
WBOYnach vorne
2023-06-01 08:22:301070Durchsuche

1. Einführung in die automatische Überprüfung von ThinkPHP

Die automatische Überprüfung von ThinkPHP ist eine Reihe von Überprüfungsmechanismen, die in das Framework integriert sind kann in Modellen verwendet werden. Die Datenüberprüfung erfolgt durch Festlegen von Überprüfungsregeln und Fehleraufforderungsinformationen und deren Kombination mit dem tatsächlichen Szenario im Controller. Durch die Verwendung der automatischen Verifizierung kann der mühsame manuelle Verifizierungsprozess vermieden und die Entwicklungseffizienz verbessert werden. Durch die automatische Validierung kann der Fehlerbehandlungscode reduziert werden, da er direkt eine Fehlermeldung zurückgibt, wenn die Daten unzulässig sind.

Die grundlegende Verwendung der automatischen ThinkPHP-Verifizierung ist wie folgt:

  1. Definieren Sie Validierungsregeln und Fehlermeldungen im Modell:

    # 🎜 🎜#
  2. protected $_validate = array(
        // 验证用户名是否合法
        array('username','require','用户名不能为空!'),
        array('username','','该用户名已被注册',0,'unique'),
        array('username','/^[\w\-\x{4e00}-\x{9fa5}]{2,16}$/','用户名不合法!',0,'regex'),
        // 验证邮箱是否合法
        array('email','require','电子邮箱不能为空!'),
        array('email','','该邮箱已被注册',0,'unique'),
        array('email','email','电子邮箱格式不正确!',0,'regex'),
        // 验证密码是否合法
        array('password','require','密码不能为空!'),
        array('password','/^[\S]{6,32}$/','密码格式不正确!',0,'regex'),
    );
  1. Datenvalidierung im Controller:

  2. public function register(){
        if(IS_POST){
            $user = D('User');
            if(!$user->create()){
                $this->ajaxReturn(array('status'=>0,'msg'=>$user->getError()));
            }else{
                $user->add();
                $this->ajaxReturn(array('status'=>1,'msg'=>'注册成功!'));
            }
        }
    }
Im obigen Code verwenden wir $user->create() für die Datenüberprüfung, verwenden Sie $user->getError(), um die Fehlerinformationen abzurufen und an die zurückzugeben Vorderseite. Wenn die Validierung erfolgreich ist, werden die Daten zur Datenbank hinzugefügt.

$user->create()进行数据验证,如果验证失败,则使用$user->getError()获取错误信息,并返回给前端页面。如果验证成功,则将数据添加到数据库中。

二、ThinkPHP自动验证修改

在实际开发过程中,有时候需要对某些字段进行更新,但是在这种情况下也需要进行数据验证。虽然我们可以使用自动验证机制,但是该机制会再次验证所有的验证规则,导致时间和资源的浪费。

为了解决这个问题,ThinkPHP提供了自动验证的修改功能,它可以根据当前场景,只对需要验证的字段进行验证。假如您要修改数据库中的usernameemail字段,而并不需要对password进行验证,则可以使用如下代码:

public function update(){
    if(IS_POST){
        $user = D('User');
        $data = array(
            'id' => $_POST['id'],
            'username' => $_POST['username'],
            'email' => $_POST['email'],
        );
        if(!$user->create($data, 2)){
            $this->ajaxReturn(array('status'=>0,'msg'=>$user->getError()));
        }else{
            $user->save();
            $this->ajaxReturn(array('status'=>1,'msg'=>'更新成功!'));
        }
    }
}

在上述代码中,我们传递了第二个参数2,表示当前为更新场景。这样,在create()方法中,框架只会对usernameemail

2. Änderung der automatischen ThinkPHP-Verifizierung#🎜🎜##🎜🎜##🎜🎜#Im eigentlichen Entwicklungsprozess müssen manchmal einige Felder aktualisiert werden, in diesem Fall jedoch die Datenvalidierung ist auch in Fällen erforderlich. Obwohl wir einen automatischen Überprüfungsmechanismus verwenden können, überprüft dieser Mechanismus alle Überprüfungsregeln erneut, was zu einer Verschwendung von Zeit und Ressourcen führt. #🎜🎜##🎜🎜#Um dieses Problem zu lösen, bietet ThinkPHP eine Funktion zur automatischen Überprüfungsänderung, mit der nur die Felder überprüft werden können, die gemäß dem aktuellen Szenario überprüft werden müssen. Wenn Sie die Felder Benutzername und E-Mail in der Datenbank ändern möchten, ohne das Passwort zu überprüfen, können Sie den folgenden Code verwenden: #🎜 🎜#rrreee #🎜🎜#Im obigen Code haben wir den zweiten Parameter 2 übergeben, der angibt, dass die aktuelle Szene aktualisiert wird. Auf diese Weise überprüft das Framework in der Methode create() nur Benutzername und E-Mail, nicht jedoch andere Felder. #🎜🎜#

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Änderungsfunktion der automatischen Überprüfung von ThinkPHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen