Maison développement back-end tutoriel php À propos du principe et de l'analyse du remplissage automatique dans le framework thinkPHP

À propos du principe et de l'analyse du remplissage automatique dans le framework thinkPHP

Jun 19, 2018 am 10:36 AM
thinkphp框架 自动填充

Cet article présente principalement le remplissage automatique du framework thinkPHP. Il analyse en détail sous forme d'exemples les principes, les méthodes d'utilisation et les précautions de fonctionnement associées au remplissage automatique du framework thinkPHP. >

Des exemples analysent les principes et l'utilisation du remplissage automatique dans le framework thinkPHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

thinkphp a une méthode pour remplir automatiquement les champs

Les règles de remplissage sont comme suit

array(
   array(完成字段1,完成规则,[完成条件,附加规则]),
   array(完成字段2,完成规则,[完成条件,附加规则]),
   ......
);
Copier après la connexion

Remarque : après avoir étudié le code source, j'ai découvert qu'il existe en fait un quatrième paramètre, qui est utilisé pour transmettre des paramètres aux fonctions ou aux méthodes de rappel. Le paramètre 1 est par défaut sur ce champ Valeur , tel que :

array('mobile','trim',3,'function',参数2,参数3'),
Copier après la connexion

Vérifier le paiement. dynamique et statique

Vérification statique

Prédéfinissez les règles de vérification automatique du modèle dans la classe de modèle, et il sera automatiquement vérifié après avoir utilisé la méthode

. create

Ce qui suit sont des exemples officiels

1. Définissez d'abord les règles de vérification dans le modèle

namespace Home\Model;
use Think\Model;
class UserModel extends Model{
   protected $_auto = array (
     array('status','1'), // 新增的时候把status字段设置为1
     array('password','md5',3,'function') , // 对password字段在新增和编辑的时候使md5函数处理
     array('name','getName',3,'callback'), // 对name字段在新增和编辑的时候回调getName方法
     array('update_time','time',2,'function'), // 对update_time字段在更新的时候写入当前时间戳
   );
}
Copier après la connexion

2 . Lors de votre appel, utilisez la méthode

pour remplir automatiquement create

$User = D("User"); // 实例化User对象
if (!$User->create()){ // 创建数据对象
   // 如果创建失败 表示验证没有通过 输出错误提示信息
   exit($User->getError());
}else{
   // 验证通过 写入新增数据
   $User->add();
}
Copier après la connexion

vérification dynamique

en dessous est un exemple officiel

$rules = array (
  array('status','1'), // 新增的时候把status字段设置为1
  array('password','md5',3,'function') , // 对password字段在新增和编辑的时候使md5函数处理
  array('update_time','time',2,'function'), // 对update_time字段在更新的时候写入当前时间戳
);
$User = M('User');
$User->auto($rules)->create();
$User->add();
Copier après la connexion

Ce qui suit est l'analyse du code de base :

La méthode de création sera appelé après son appel

La méthode est la suivanteautoOperation

/**
 * 自动表单处理
 * @access public
 * @param array $data 创建数据
 * @param string $type 创建类型
 * @return mixed
 */
private function autoOperation(&$data,$type) {
  if(!empty($this->options['auto'])) {
    $_auto  =  $this->options['auto'];
    unset($this->options['auto']);
  }elseif(!empty($this->_auto)){
    $_auto  =  $this->_auto;
  }
  // 自动填充
  if(isset($_auto)) {
    foreach ($_auto as $auto){
      // 填充因子定义格式
      // array('field','填充内容','填充条件','附加规则',[额外参数])
      if(empty($auto[2])) $auto[2] = self::MODEL_INSERT; // 默认为新增的时候自动填充
      //这里的判断是关键,$type为当前的操作状态,值为1表示是插入,值为2表示是更新
      //如果当前的$type状态值等于设置的值$auto[2]或者$auto[2]的值为3,代表需要填充
      if( $type == $auto[2] || $auto[2] == self::MODEL_BOTH) {
        if(empty($auto[3])) $auto[3] = 'string';
        switch(trim($auto[3])) {
          case 'function':  // 使用函数进行填充 字段的值作为参数
          case 'callback': // 使用回调方法
            $args = isset($auto[4])?(array)$auto[4]:array();
            if(isset($data[$auto[0]])) {
              array_unshift($args,$data[$auto[0]]);
            }
            if('function'==$auto[3]) {
              $data[$auto[0]] = call_user_func_array($auto[1], $args);
            }else{
              $data[$auto[0]] = call_user_func_array(array(&$this,$auto[1]), $args);
            }
            break;
          case 'field':  // 用其它字段的值进行填充
            $data[$auto[0]] = $data[$auto[1]];
            break;
          case 'ignore': // 为空忽略
            if($auto[1]===$data[$auto[0]])
              unset($data[$auto[0]]);
            break;
          case 'string':
          default: // 默认作为字符串填充
            $data[$auto[0]] = $auto[1];
        }
        if(isset($data[$auto[0]]) && false === $data[$auto[0]] )  unset($data[$auto[0]]);
      }
    }
  }
  return $data;
}
Copier après la connexion

Ce qui précède représente l'intégralité du contenu de cet article. J'espère que cela sera utile à l'étude de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

À propos de l'utilisation de l'imbrication de boucles intelligentes

À propos des erreurs courantes lors de la compilation de configure en PHP

Analyse sur l'utilisation des variables statiques et des variables statiques en PHP

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 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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

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 gérer le remplissage et la saisie semi-automatique dans les formulaires PHP Comment gérer le remplissage et la saisie semi-automatique dans les formulaires PHP Aug 11, 2023 pm 06:39 PM

Comment gérer le remplissage automatique et la saisie semi-automatique dans les formulaires PHP À mesure qu'Internet se développe, les utilisateurs s'appuient de plus en plus sur les fonctionnalités de remplissage automatique et de saisie semi-automatique pour simplifier leurs opérations sur le site Web. L'implémentation de ces fonctions dans les formulaires PHP n'est pas compliquée. Cet article présentera brièvement comment utiliser PHP pour gérer le remplissage et la saisie automatique des formulaires. Avant de commencer, nous devons clarifier ce que sont la saisie semi-automatique et la saisie semi-automatique. Le remplissage automatique fait référence au remplissage automatique des champs d'un formulaire pour les utilisateurs en fonction de leur saisie ou de leur historique précédent. Par exemple, lorsque l'utilisateur saisit un e-mail

Utilisation de Java pour implémenter le remplissage automatique des données de formulaire et des suggestions de saisie Utilisation de Java pour implémenter le remplissage automatique des données de formulaire et des suggestions de saisie Aug 07, 2023 pm 07:05 PM

Utiliser Java pour implémenter le remplissage automatique des données de formulaire et les suggestions de saisie Ces dernières années, avec le développement d'Internet, le remplissage des données de formulaire est devenu une partie de notre vie quotidienne. Cependant, remplir une grande quantité de données de formulaire pose souvent des problèmes aux utilisateurs, en particulier lors de la saisie répétée de données. Afin d'améliorer l'efficacité et l'expérience de remplissage de l'utilisateur, nous pouvons utiliser le langage Java pour implémenter le remplissage automatique des données du formulaire et des suggestions de saisie. Cet article explique comment utiliser Java pour implémenter cette fonction et fournit des exemples de code à titre de référence. Premièrement, nous avons besoin

Comment utiliser le framework ThinkPHP6 en php ? Comment utiliser le framework ThinkPHP6 en php ? May 31, 2023 pm 03:01 PM

À mesure que le développement Web continue d'évoluer, les développeurs doivent utiliser des outils et des frameworks pratiques pour gagner du temps et des efforts tout en améliorant la qualité de leurs applications. ThinkPHP est un framework PHP populaire qui simplifie grandement le développement et augmente l'efficacité. Dans cet article, nous apprendrons comment utiliser la dernière version du framework ThinkPHP6. Exigences environnementales Tout d'abord, vous devez confirmer que votre système répond aux exigences suivantes : PHP version 7.1 et supérieure MySQL version 5.5 et supérieure Composer est un

Techniques de remplissage automatique des formulaires en PHP Techniques de remplissage automatique des formulaires en PHP May 24, 2023 am 09:31 AM

Avec le développement continu d'Internet, les formulaires sont devenus l'une des fonctions utilisées sur nos sites Web quotidiens. Amener les utilisateurs à remplir un formulaire est sans aucun doute une tâche fastidieuse, il est donc nécessaire d'utiliser quelques astuces pour simplifier le processus. Cet article présentera les techniques d'implémentation du remplissage automatique des formulaires en PHP. 1. Utiliser la valeur par défaut Lors de la définition de la valeur par défaut du formulaire, vous pouvez utiliser l'attribut "value" dans la balise form pour la spécifier. Voici un exemple : <inputtype="text"name=&q

Suggestions de développement : Comment utiliser le framework ThinkPHP pour la gestion des autorisations RBAC Suggestions de développement : Comment utiliser le framework ThinkPHP pour la gestion des autorisations RBAC Nov 22, 2023 pm 08:02 PM

"Suggestions de développement pour l'utilisation du framework ThinkPHP pour la gestion des autorisations RBAC" Avec le développement d'Internet, de plus en plus d'applications Web doivent implémenter des fonctions de gestion des autorisations pour garantir la sécurité et la contrôlabilité du système. RBAC (Role-BasedAccessControl, contrôle d'accès basé sur les rôles), en tant que modèle de gestion des autorisations mature, a été largement utilisé dans le développement actuel. ThinkPHP est un framework PHP populaire qui fournit des fonctions riches et des extensions flexibles.

Guide du framework ThinkPHP en PHP Guide du framework ThinkPHP en PHP May 21, 2023 am 08:51 AM

ThinkPHP est un framework open source PHP bien connu. Il se caractérise par son efficacité, sa simplicité et sa facilité d'utilisation, et peut créer rapidement des applications Web à grande échelle. Cet article vous présentera l'utilisation et les précautions du framework ThinkPHP. 1. Installation du framework ThinkPHP 1. Téléchargez le framework ThinkPHP Vous pouvez télécharger le package compressé ThinkPHP sur le site officiel (http://www.thinkphp.cn/) et le décompresser. Vous pouvez également l'installer via Composer

Comment résoudre le problème selon lequel Firefox ne peut pas saisir automatiquement le mot de passe du compte après l'avoir enregistré Comment résoudre le problème selon lequel Firefox ne peut pas saisir automatiquement le mot de passe du compte après l'avoir enregistré Jan 29, 2024 pm 07:30 PM

Que dois-je faire si Firefox ne peut pas saisir automatiquement le mot de passe du compte après l'avoir enregistré ? Nous avons choisi de sauvegarder le mot de passe du compte, mais que dois-je faire s'il ne peut pas le saisir automatiquement ? Lorsque nous utilisons Firefox pour nous connecter à notre compte et à notre mot de passe, le navigateur nous demandera si nous souhaitons le sauvegarder, mais la prochaine fois que nous ouvrirons le navigateur, le compte et le mot de passe ne seront toujours pas automatiquement renseignés. . Comment résoudre ce problème, comme suit L'éditeur a trouvé la solution au problème selon lequel Firefox ne peut pas saisir automatiquement le mot de passe du compte après l'avoir enregistré. Sinon, suivez-moi ci-dessous ! Que dois-je faire si Firefox ne peut pas saisir automatiquement le mot de passe du compte après l'avoir enregistré ? 1. Ouvrez Firefox, cliquez sur l'icône « Ouvrir le menu » dans le coin supérieur droit du navigateur, puis cliquez sur « Options » dans la liste du menu ci-dessous pour l'ouvrir. le panneau des options du navigateur. 2. Dans le feu

Comment utiliser le robot d'exploration PHP pour remplir automatiquement des formulaires et soumettre des données ? Comment utiliser le robot d'exploration PHP pour remplir automatiquement des formulaires et soumettre des données ? Aug 08, 2023 pm 12:49 PM

Comment utiliser le robot d'exploration PHP pour remplir automatiquement des formulaires et soumettre des données ? Avec le développement d'Internet, nous avons de plus en plus besoin d'obtenir des données à partir de pages Web ou de remplir automatiquement des formulaires et de soumettre des données. En tant que langage puissant côté serveur, PHP fournit de nombreux outils et bibliothèques de classes pour implémenter ces fonctions. Dans cet article, nous expliquerons comment utiliser les robots d'exploration en PHP pour remplir automatiquement des formulaires et soumettre des données. Tout d’abord, nous devons utiliser la bibliothèque curl en PHP pour obtenir et soumettre les données d’une page Web. La bibliothèque curl est un puissant

See all articles