Cet article présente principalement l'analyse des problèmes de vérification automatique, d'ajout automatique et d'erreur de formulaire de thinkPHP, et analyse les compétences d'utilisation et les précautions associées du mécanisme de complétion automatique de thinkPHP sous forme de cas. Les amis dans le besoin peuvent s'y référer
. J'ai récemment travaillé sur un autre projet et je voulais utiliser thinkphp pour écrire une vérification, mais j'ai pleuré pendant quelques jours. C'était une erreur de jeton au début, puis quelque chose ajouté automatiquement est devenu invalide.
J'ai testé et recherché, et j'ai découvert que la méthode create() avait à l'origine deux paramètres
Le premier paramètre est le paramètre de données que tout le monde connaît, et le second. paramètre C'est le paramètre $type caché. Qu'est-ce que ce paramètre est utilisé pour contrôler ? ?
Copier le code Le code est le suivant :
//$type = $type?$type!empty($data[$this-> getPk() ])?self::MODEL_UPDATE:self::MODEL_INSERT);
Après avoir soigneusement réfléchi à cette phrase, j'ai découvert que ce paramètre caché est utilisé pour indiquer le fonctionnement spécifique de cette base de données ?
La valeur de $type est 1 pour l'opération d'insertion et 0 pour l'opération de mise à jour. Par défaut, il n'est pas nécessaire d'attribuer une valeur à ce paramètre car le système peut l'identifier automatiquement.
Si votre clé primaire est automatiquement ajoutée par la base de données, alors tout ira bien. Si vous l'ajoutez manuellement, ce serait une tragédie. Parce que la valeur par défaut est de mettre à jour l'opération de données.
Ce qui suit est le code de saisie semi-automatique que j'ai écrit
protected $_auto = array( array('password','sha1',1,'function'), array('date', 'time', 1, 'function'), );
Avez-vous vu ce 1 ? Ce 1 signifie lors de l'insertion de données Oui ? , la fonction est exécutée. PS : C'est à cause de cela que je lutte depuis longtemps.
Lorsque vous souhaitez saisir des données, vous pouvez écrire :
create($_POST,1)//【插入数据】 create($_POST,2)//【更新数据】
Indiquez directement à la méthode de création que cette opération est une opération d'insertion , cela peut donc résoudre le problème d'un timing de saisie semi-automatique incorrect et d'une saisie semi-automatique invalide.
Mais si vous insistez pour ne pas l'écrire comme ça, je n'y peux rien. Vous devez juste vous rappeler que si la fonction create() est utilisée, la valeur par défaut est de mettre à jour les données. Lors de l’écriture de la méthode Model.
diagramme de saisie semi-automatique thinkphp
L'avez-vous vu
protected $_auto = array( array('password','sha1',2,'function'), array('date', 'time', 2, 'function'), //把1换成2就好了。 );
Le problème sera résolu.
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
PHP détermine si un fichier existe dans le répertoire spécifié
Traitement du signal de processus 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!