Solution à l'échec de la méthode thinkphp create : 1. Écrivez une méthode de test pour simuler les données saisies par l'utilisateur sur la page front-end, avec un code tel que "public function insert2(){...}" 2 ; . Ajoutez une valeur par défaut au champ d'état dans la base de données. Définissez simplement la valeur sur 1 et enregistrez les paramètres.
L'environnement d'exploitation de ce tutoriel : système Windows 7, THINKPHP version 5.1, ordinateur Dell G3.
Que dois-je faire si la méthode thinkphp create échoue ?
Pour résoudre le problème de l'échec d'écriture de la méthode create dans le modèle THINKPHP5.1, mais il n'y a pas de message d'erreur
L'idée est d'écrire une méthode de test pour simuler les données saisies par l'utilisateur sur la page précédente et enregistrez-le sous $data, similaire au code suivant
public function insert2() { $data = [ 'name'=>'chen', 'password'=>'abc1234', 'email'=>'chen@qq.com', 'mobile'=>'18285859696' ]; return UserModel::create($data); }
Accédez à cette méthode dans le navigateur et renvoyez les résultats suivants. Vous pouvez voir que le statut du champ n'a pas de valeur par défaut et que nous ne lui avons pas transmis de valeur, donc le. La méthode create n'a pas réussi à écrire !
Capture d'écran des champs dans la base de données. Il n'y a en effet pas de valeur par défaut pour le champ d'état dans la base de données. On coche l'option valeur par défaut, puis on donne une valeur de 1, on l'enregistre et on réessaye
.
Vous pouvez voir que la valeur a été renvoyée avec succès
Expérience : la prochaine fois que vous rencontrerez une situation où aucune erreur n'est demandée, écrivez simplement une nouvelle méthode pour simuler les données frontales. Une autre méthode très importante consiste à jeter un œil. Le journal sous l'exécution affichera également l'erreur correspondante
[ info ] [ DB ] INIT mysql [ sql ] [ DB ] CONNECT:[ UseTime:0.001346s ] mysql:host=localhost;dbname=zh;charset=utf8 [ sql ] [ SQL ] SHOW COLUMNS FROM `zh_user` [ RunTime:0.001726s ] [ error ] [10501]SQLSTATE[HY000]: General error: 1364 Field 'status' doesn't have a default value[D:\Wamp64\www\zh\thinkphp\library\think\db\Connection.php:7
l'erreur est l'erreur, et indiquera également que le champ « statut » n'a pas de valeur par défaut
Problème résolu !
Apprentissage recommandé : "Tutoriel vidéo thinkPHP"
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!