Table des matières
Yii框架表单模型和验证用法,yii框架表单模型
Maison développement back-end tutoriel php Yii框架表单模型和验证用法,yii框架表单模型_PHP教程

Yii框架表单模型和验证用法,yii框架表单模型_PHP教程

Jul 12, 2016 am 08:50 AM
yii 验证

Yii框架表单模型和验证用法,yii框架表单模型

本文实例讲述了Yii框架表单模型和验证用法。分享给大家供大家参考,具体如下:

表单模型CFormModel绝大部分继承CModelCModel,由于表模型数据不需要持久化,所以主要在验证操作上。下面以框架脚手架生成的网站登录为例说明表单模型。

1

2

3

4

5

6

7

8

9

//模型中的验证规则

public function rules()

{

  return array(

    array('username, password', 'required'),

    array('rememberMe', 'boolean'),

    array('password', 'authenticate'),

  );

}

Copier après la connexion

1

2

3

4

5

6

7

8

9

$model=new LoginForm;//创建一个登录表单模型

$model->attributes=$_POST['LoginForm'];//传入登录数据

CModel->setAttributes($values,$safeOnly=true)//调用CModel的setter方法

//返回model中relues中定义的安全数据,经过下面的调用流程获取一个验证器集合

//每个验证器由CValidator::createValidator($rule[1],$this,$rule[0],array_slice($rule,2))

CModel->getValidators()

->createValidators()

->rules()

CModel->validate();//遍历验证器执行验证

Copier après la connexion

验证器内部实现

表单模型核心部分在验证上,下面探讨其实现方式。

YII框架中验证以独立组件集合的形式存在,CValidator是所有验证器的基类。还是以登录验证为例。rules方法中包含required、boolean、authenticate三个验证器

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

public static function createValidator($name,$object,$attributes,$params=array())

{

  if(is_string($attributes))

    $attributes=preg_split('/[\s,]+/',$attributes,-1,PREG_SPLIT_NO_EMPTY);

  if(isset($params['on']))

  {

    if(is_array($params['on']))

      $on=$params['on'];

    else

      $on=preg_split('/[\s,]+/',$params['on'],-1,PREG_SPLIT_NO_EMPTY);

  }

  else

    $on=array();

  if(method_exists($object,$name))

  {

    $validator=new CInlineValidator;

    $validator->attributes=$attributes;

    $validator->method=$name;

    if(isset($params['clientValidate']))

    {

      $validator->clientValidate=$params['clientValidate'];

      unset($params['clientValidate']);

    }

    $validator->params=$params;

    if(isset($params['skipOnError']))

      $validator->skipOnError=$params['skipOnError'];

  }

  else

  {

    $params['attributes']=$attributes;

    if(isset(self::$builtInValidators[$name]))

      $className=Yii::import(self::$builtInValidators[$name],true);

    else

      $className=Yii::import($name,true);

    $validator=new $className;

    foreach($params as $name=>$value)

      $validator->$name=$value;

  }

  $validator->on=empty($on) ? array() : array_combine($on,$on);

  return $validator;

}

Copier après la connexion

创建验证器流程

1、获取属性(array $attributes)和使用场景(array $on)
2、判断验证器是否存在model中,如果存在创建一个内联验证器CInlineValidator,如果不存在,执行第3步
3、如果验证器是框架自带的导入自带验证器,否则导入外部验证器,然后实例化并赋值。

当触发validate()时候,可能产生的错误将被存储在model中,可以通过调用 CModel::getErrors() 和CModel::getError() 提取这些错误信息

PS:小编在这里推荐一款本站的php格式化美化的排版工具帮助大家在以后的PHP程序设计中进行代码排版:

php代码在线格式化美化工具:http://tools.jb51.net/code/phpformat

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1133127.htmlTechArticleYii框架表单模型和验证用法,yii框架表单模型 本文实例讲述了Yii框架表单模型和验证用法。分享给大家供大家参考,具体如下: 表单模型...
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment vérifier la signature dans un PDF Comment vérifier la signature dans un PDF Feb 18, 2024 pm 05:33 PM

Nous recevons généralement des fichiers PDF du gouvernement ou d'autres agences, certains avec des signatures numériques. Après avoir vérifié la signature, nous voyons le message SignatureValid et une coche verte. Si la signature n'est pas vérifiée, la validité est inconnue. La vérification des signatures est importante, voyons comment le faire en PDF. Comment vérifier les signatures au format PDF La vérification des signatures au format PDF le rend plus fiable et le document est plus susceptible d'être accepté. Vous pouvez vérifier les signatures dans les documents PDF des manières suivantes. Ouvrez le PDF dans Adobe Reader Cliquez avec le bouton droit sur la signature et sélectionnez Afficher les propriétés de la signature Cliquez sur le bouton Afficher le certificat du signataire Ajoutez la signature à la liste des certificats de confiance à partir de l'onglet Confiance Cliquez sur Vérifier la signature pour terminer la vérification.

Méthode détaillée pour débloquer à l'aide de la vérification assistée par un ami WeChat Méthode détaillée pour débloquer à l'aide de la vérification assistée par un ami WeChat Mar 25, 2024 pm 01:26 PM

1. Après avoir ouvert WeChat, cliquez sur l'icône de recherche, entrez dans l'équipe WeChat et cliquez sur le service ci-dessous pour entrer. 2. Après avoir entré, cliquez sur l'option outil libre-service dans le coin inférieur gauche. 3. Après avoir cliqué, dans les options ci-dessus, cliquez sur l'option de déblocage/appel pour vérification auxiliaire.

Comment valider le code IFSC à l'aide d'expressions régulières ? Comment valider le code IFSC à l'aide d'expressions régulières ? Aug 26, 2023 pm 10:17 PM

Le Code du système financier indien est l'abréviation. Les succursales des banques indiennes participant au système de transfert électronique de fonds sont identifiées par un code spécial à 11 caractères. La Reserve Bank of India utilise ce code dans les transactions Internet pour transférer des fonds entre banques. Le code IFSC est divisé en deux parties. Les banques sont identifiées par les quatre premiers caractères, tandis que les succursales sont identifiées par les six derniers caractères. NEFT (National Electronic Funds Transfer), RTGS (Real Time Gross Settlement) et IMPS (Immediate Payment Service) sont quelques-unes des transactions électroniques qui nécessitent des codes IFSC. Méthode Voici quelques méthodes courantes pour valider les codes IFSC à l'aide d'expressions régulières : Vérifiez si la longueur est correcte. Vérifiez les quatre premiers caractères. Vérifiez le cinquième caractère. Che

Comment vérifier si l'entrée est constituée de caractères pleine chasse dans Golang Comment vérifier si l'entrée est constituée de caractères pleine chasse dans Golang Jun 25, 2023 pm 02:03 PM

Dans Golang, le codage Unicode et le type de rune sont requis pour vérifier si l'entrée est constituée de caractères pleine chasse. Le codage Unicode est une norme de codage de caractères qui attribue un point de code numérique unique à chaque caractère du jeu de caractères, qui comprend des caractères pleine chasse et des caractères demi-chasse. Le type rune est le type utilisé pour représenter les caractères Unicode en golang. La première étape consiste à convertir l’entrée en une tranche de type rune. Cela peut être converti en utilisant le type []rune de Golang, par exemple.

Comment vérifier si l'entrée est en majuscules dans Golang Comment vérifier si l'entrée est en majuscules dans Golang Jun 24, 2023 am 09:06 AM

Golang est un langage de programmation moderne et performant qui implique souvent le traitement de chaînes dans le développement quotidien. Parmi eux, valider si la saisie est en lettres majuscules est une exigence courante. Cet article explique comment vérifier si l'entrée est constituée de lettres majuscules dans Golang. Méthode 1 : utilisez le package Unicode Le package Unicode de Golang fournit une série de fonctions pour déterminer le type de codage des caractères. Pour les lettres majuscules, la plage de codage correspondante est 65-90 (décimal), nous pouvons donc utiliser Unicode

Nouvelles fonctionnalités de PHP 8 : ajout de la vérification et de la signature Nouvelles fonctionnalités de PHP 8 : ajout de la vérification et de la signature Mar 27, 2024 am 08:21 AM

PHP8 est la dernière version de PHP, apportant plus de commodité et de fonctionnalités aux programmeurs. Cette version met un accent particulier sur la sécurité et les performances, et l'une des nouvelles fonctionnalités remarquables est l'ajout de capacités de vérification et de signature. Dans cet article, nous examinerons de plus près ces nouvelles fonctionnalités et leurs utilisations. La vérification et la signature sont des concepts de sécurité très importants en informatique. Ils sont souvent utilisés pour garantir que les données transmises sont complètes et authentiques. La vérification et les signatures deviennent encore plus importantes lorsqu'il s'agit de transactions en ligne et d'informations sensibles, car si quelqu'un est capable de falsifier les données, cela pourrait potentiellement

Comment vérifier si l'entrée est composée uniquement de caractères chinois en golang Comment vérifier si l'entrée est composée uniquement de caractères chinois en golang Jun 24, 2023 am 09:16 AM

Avec l'évolution des temps, nous accordons de plus en plus d'attention à la vérification des données, en particulier à la vérification des entrées des utilisateurs. Pour la vérification de la langue, la manière de déterminer avec précision si l'entrée est uniquement composée de caractères chinois est devenue une question importante. En Golang, nous pouvons utiliser le package Unicode et le package regexp pour répondre à cette exigence. 1. Package Unicode Le package Unicode fournit une série de supports de base pour Unicode. Nous pouvons utiliser les fonctions de ce package pour déterminer avec précision si un caractère est un caractère chinois.

Comment valider les paramètres d'itinéraire dans Laravel ? Comment valider les paramètres d'itinéraire dans Laravel ? Sep 01, 2023 pm 02:41 PM

Dans Laravel, les routes sont définies dans le dossier paths/. Les routes sont définies dans le fichier web.php. Ce fichier est créé une fois l'installation de Laravel terminée. Les routes Laravel acceptent les URI et les fonctions de fermeture comme suit - useIlluminate\Support\Facades\Route;Route::get('/student',function(){return'HelloStudent';}); dans web/routes.php Les routes définies sont attribuées. aux groupes de middleware Web, et ils disposent d’un état de session et d’une protection CSRF. Vous pouvez également appeler le contrôleur sur l'itinéraire comme ci-dessous

See all articles