La colonne tutorielle suivante de thinkphp vous présentera l'ajustement du champ horaire dans la dernière version de ThinkORM. J'espère qu'elle sera utile aux amis dans le besoin !
De nombreux utilisateurs n'ont pas pu obtenir la valeur d'origine du champ de temps après la mise à niveau vers la dernière version du framework 6.0. Cela est dû à un dernier ajustement de Think. -bibliothèque orm.
Dans la dernière version de ThinkORM, le traitement automatique des types de champs et des champs temporels n'est plus inclus dans la portée du getter. Au lieu de cela, il est traité dès que les résultats sont interrogés pour éviter d'avoir à appeler le getter. des données à chaque fois dans le futur. Des tests et un traitement supplémentaires sont nécessaires à chaque fois. Étant donné que le getter n'est plus inclus, les valeurs originales de ces champs ne peuvent pas être obtenues, y compris les champs avec un ensemble de conversion de type et les champs de traitement automatique du temps.
Le traitement automatique des champs temporels est une fonction fournie par le framework pour implémenter l'écriture automatique et la conversion automatique de sortie des champs temporels (y compris create_time et update_time, qui prennent en charge les noms de champs personnalisés).
Si vous avez besoin d'obtenir la valeur d'origine du champ d'heure, vous devez désactiver la fonction de traitement automatique du champ d'heure, c'est-à-dire définir l'attribut autoWriteTimestamp sur false, puis personnaliser le getter du champ d'heure à prendre sur la sortie du champ horaire, et rappelez-vous qu'une fois Désactivé le traitement automatique du champ horaire, l'écriture des données pour les champs horaires doit être écrite manuellement.
Si vous souhaitez que le champ d'heure soit automatiquement écrit, mais que vous ne souhaitez pas formater automatiquement la sortie, vous pouvez définir l'attribut dateFormat sur false. S'il est défini dans le fichier de configuration de la base de données, il doit être défini comme suit :
// 自动写入时间戳字段 // true为自动识别类型 false关闭 // 字符串则明确指定时间字段类型 支持 int timestamp datetime date 'auto_timestamp' => true, // 时间字段取出后的默认时间格式 'datetime_format' => false,
La mise à niveau de think-orm vers la dernière version a corrigé le problème ci-dessus, mais notez qu'il est préférable d'utiliser la méthode getOrigin au lieu de la méthode getOrigin. getData pour obtenir les données d'origine, si vous avez besoin de lire les données du champ d'heure d'origine dans la méthode getter définie, vous devez utiliser $this->origin['create_time'] au lieu de $data['create_time'] ou $this ->data['create_time'] .
Recommandations associées : Les 10 derniers didacticiels 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!