Maison > cadre php > PensezPHP > Explication détaillée de la vérification automatique et des règles de vérification dans ThinkPHP

Explication détaillée de la vérification automatique et des règles de vérification dans ThinkPHP

angryTom
Libérer: 2020-03-23 14:54:22
avant
5915 Les gens l'ont consulté

Cet article présente en détail les méthodes de vérification automatique et les règles de vérification dans thinkphp. J'espère qu'il sera utile aux amis qui apprennent thinkphp !

Explication détaillée de la vérification automatique et des règles de vérification dans ThinkPHP

Explication détaillée de la vérification automatique et des règles de vérification dans ThinkPHP

ThinkPHP a une fonction de vérification automatique intégrée des objets de données à compléter les règles métier du modèle vérifient. La validation automatique est basée sur des objets de données et, dans la plupart des cas, les objets de données sont créés sur la base du formulaire $_POST (non absolu).

Les fonctions de vérification automatique de base incluent : les champs obligatoires, le format de l'e-mail, l'unicité, l'adresse URL, les chiffres, si deux champs sont identiques, s'ils sont égaux à une certaine valeur, etc.

Pour utiliser la fonction de vérification automatique du système, il vous suffit de définir l'attribut $_validate (un tableau composé de plusieurs facteurs de vérification) dans la classe Model correspondante. La syntaxe est la suivante :

protected $_validate = array(
    array(验证字段,验证规则,错误提示[,验证条件][,附加规则][,验证时间])
};
Copier après la connexion
.

(Tutoriel recommandé :Tutoriel thinkphp)

ThinkPHP自动验证格式说明:
验证因子说明
验证字段必须。需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如验证码等。
验证规则必须。要进行验证的规则,需要联合附加规则一起使用。
错误提示必须。当验证不通过时的提示信息。
验证条件可选。包括:
  1. Model::EXISTS_TO_VAILIDATE 或者 0 :存在字段就验证(默认)
  2. Model::MUST_TO_VALIDATE 或者 1 :必须验证
  3. Model::VALUE_TO_VAILIDATE 或者 2 :值不为空的时候验证
附加规则可选。配合验证规则使用,包括:
  1. regex:使用正则进行验证,表示前面定义的验证规则是一个正则表达式(默认)
  2. unique:验证唯一性,系统会根据字段目前的值查询数据库来判断是否存在相同的值
  3. confirm:验证表单中的两个字段是否相同,前面定义的验证规则是一个字段名
  4. equal:验证是否等于某个值,该值由前面的验证规则定义
  5. in:验证是否在某个范围内,前面定义的验证规则必须是一个数组
  6. function:使用函数验证,表示前面定义的验证规则是一个函数名
  7. callback:使用方法验证,前面定义的验证规则是当前 Model 类的一个方法
验证时间可选。包括:
  1. Model:: MODEL_INSERT 或者 1 :新增数据时候验证
  2. Model:: MODEL_UPDATE 或者 2 :编辑数据时候验证
  3. Model:: MODEL_BOTH 或者 3 :全部情况下验证(默认)

Exemple de vérification automatique

L'exemple suivant vérifie que le titre de l'article doit être rempli et détecte si le titre existe déjà :

class ArticleModel extends Model{
    protected $_validate = array(
        array('title','require','标题不能为空!'),
        array('title','','标题已经存在!',0,'unique',1),
    };
}
Copier après la connexion

En fonctionnement, lors de l'utilisation de la méthode create pour créer un objet de données, l'opération de vérification des données sera automatiquement effectuée (lorsque POST soumet le formulaire pour traitement) :

$Article = D("Article");
if (!$Article->create()){
    // 如果创建失败,表示验证没有通过(注:可能原因之一)输出错误提示信息
    exit($Article->getError());
}else{
    // 验证通过,继续下一步流程如将数据写入数据表
}
Copier après la connexion

Le système intègre certaines règles de vérification régulières courantes, notamment : require (obligatoire), email (format d'e-mail), url (adresse URL), devise (devise), numéro (chiffres), qq (QQ). numéro), anglais (caractères anglais), qui peut être utilisé directement.

Pour des raisons d'expérience utilisateur, le message d'erreur renvoyé par $Article->getError() est généralement renvoyé en mode Ajax. Pour plus de détails, voir « ThinkPHP Ajax ».

Définissez vos propres règles de vérification

Lorsque les règles de vérification intégrées ne peuvent pas répondre aux exigences de vérification, vous pouvez définir vos propres règles de vérification, par exemple exiger la date de naissance être une entrée au format 2000-1-1 :

array('birthday','/^d{4}-d{1,2}-d{1,2}$/','出生年月格式错误!'),
Copier après la connexion

Pour plus de tutoriels connexes, veuillez faire attention au Site Web PHP chinois !

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal