Heim  >  Artikel  >  PHP-Framework  >  Detaillierte Erläuterung der automatischen Verifizierung und Verifizierungsregeln in ThinkPHP

Detaillierte Erläuterung der automatischen Verifizierung und Verifizierungsregeln in ThinkPHP

angryTom
angryTomnach vorne
2020-03-23 14:54:225842Durchsuche

In diesem Artikel werden die Methoden der automatischen Überprüfung und die Überprüfungsregeln in thinkphp ausführlich vorgestellt. Ich hoffe, er wird Freunden, die thinkphp lernen, hilfreich sein.

Detaillierte Erläuterung der automatischen Verifizierung und Verifizierungsregeln in ThinkPHP

Detaillierte Erläuterung der automatischen Überprüfung und Verifizierungsregeln in ThinkPHP

ThinkPHP verfügt über eine integrierte Funktion zur automatischen Überprüfung von zu vervollständigenden Datenobjekten Die Geschäftsregeln des Modells werden überprüft. Die automatische Validierung basiert auf Datenobjekten und in den meisten Fällen werden Datenobjekte auf der Grundlage der $_POST-Form (nicht absolut) erstellt.

Zu den grundlegenden automatischen Überprüfungsfunktionen gehören: Pflichtfelder, E-Mail-Format, Eindeutigkeit, URL-Adresse, Zahlen, ob zwei Felder gleich sind, ob sie einem bestimmten Wert entsprechen usw.

Um die automatische Verifizierungsfunktion des Systems zu nutzen, müssen Sie nur das Attribut $_validate (ein Array bestehend aus mehreren Verifizierungsfaktoren) in der entsprechenden Modellklasse definieren. Die Syntax lautet wie folgt:

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

(empfohlenes Tutorial:thinkphp-Tutorial)

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 :全部情况下验证(默认)

Beispiel für die automatische Überprüfung

Das folgende Beispiel überprüft, ob der Artikeltitel ausgefüllt werden muss und erkennt, ob der Titel bereits vorhanden ist:

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

Im Betrieb wird bei Verwendung der Methode „create“ zum Erstellen eines Datenobjekts der Datenüberprüfungsvorgang automatisch durchgeführt (wenn POST das Formular zur Verarbeitung übermittelt):

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

Das System verfügt über einige integrierte reguläre Verifizierungsregeln, darunter: require (erforderlich), E-Mail (E-Mail-Format), URL (URL-Adresse), Währung (Währung), Nummer (Nummer), qq (QQ-Nummer). , Englisch (englische Zeichen), die direkt verwendet werden können.

Aus Gründen der Benutzererfahrung wird die von $Article->getError() zurückgegebene Fehlermeldung im Allgemeinen im Ajax-Modus zurückgegeben. Weitere Informationen finden Sie unter „ThinkPHP Ajax“.

Definieren Sie Ihre eigenen Verifizierungsregeln

Wenn die integrierten Verifizierungsregeln die Verifizierungsanforderungen nicht erfüllen können, können Sie Ihre eigenen Verifizierungsregeln definieren, z. B. das Erfordernis des Geburtsdatums 2000 sein - 1-1-Formateingabe:

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

Weitere verwandte Tutorials finden Sie auf der PHP-Chinese-Website!

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der automatischen Verifizierung und Verifizierungsregeln in ThinkPHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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