Maison >cadre php >PensezPHP >Comment utiliser la fonction de modification de la vérification automatique ThinkPHP

Comment utiliser la fonction de modification de la vérification automatique ThinkPHP

WBOY
WBOYavant
2023-06-01 08:22:301107parcourir

1. Introduction à la vérification automatique ThinkPHP

La vérification automatique ThinkPHP est un ensemble de mécanismes de vérification intégrés au framework. Elle peut effectuer la vérification des données en définissant des règles de vérification et des invites d'erreur dans le modèle, et en les combinant avec des scénarios réels. dans le contrôleur. L'utilisation de la vérification automatique peut éviter le processus fastidieux de vérification manuelle et améliorer l'efficacité du développement. Avec la validation automatique, le code de gestion des erreurs peut être réduit car il renverra directement un message d'erreur lorsque les données sont illégales.

L'utilisation de base de la validation automatique ThinkPHP est la suivante :

  1. Définir les règles de validation et le message d'erreur dans le modèle :

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. Effectuer la validation des données dans le contrôleur :

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'=>'注册成功!'));
        }
    }
}

Dans le code ci-dessus , nous utilisons $user->create() pour la vérification des données. Si la vérification échoue, utilisez $user->getError() pour obtenir les informations d'erreur et renvoyer. vers la page frontale. Si la validation réussit, les données sont ajoutées à la base de données. $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. Modification de la vérification automatique ThinkPHP🎜🎜🎜Dans le processus de développement actuel, il est parfois nécessaire de mettre à jour certains champs, mais dans ce cas, une vérification des données est également requise. Bien que nous puissions utiliser un mécanisme de vérification automatique, ce mécanisme vérifiera à nouveau toutes les règles de vérification, ce qui entraînera une perte de temps et de ressources. 🎜🎜Afin de résoudre ce problème, ThinkPHP fournit une fonction de modification de vérification automatique, qui ne peut vérifier que les champs qui doivent être vérifiés selon le scénario actuel. Si vous souhaitez modifier les champs username et email dans la base de données sans vérifier le mot de passe, vous pouvez utiliser le code suivant : 🎜rrreee 🎜Dans le ci-dessus, nous avons passé le deuxième paramètre 2, qui indique que la scène actuelle est mise à jour. De cette façon, dans la méthode create(), le framework vérifiera uniquement username et email, mais pas les autres champs. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer