Heim >PHP-Framework >Denken Sie an PHP >Bezüglich der Anpassungen am Zeitfeld in der neuesten Version von ThinkORM

Bezüglich der Anpassungen am Zeitfeld in der neuesten Version von ThinkORM

藏色散人
藏色散人nach vorne
2021-04-16 09:43:022255Durchsuche

Die folgende Tutorial-Kolumne von thinkphp stellt Ihnen die Anpassungen des Zeitfelds in der neuesten Version von ThinkORM vor. Ich hoffe, dass es Freunden in Not hilfreich sein wird!

Bezüglich der Anpassungen am Zeitfeld in der neuesten Version von ThinkORM

Viele Benutzer konnten nach dem Upgrade auf die neueste Version des 6.0-Frameworks nicht den ursprünglichen Wert des Zeitfelds erhalten. Dies ist auf eine aktuelle Anpassung in der Think-Orm-Bibliothek zurückzuführen.

Im neuesten ThinkORM ist die automatische Verarbeitung von Feldtypen und Zeitfeldern nicht mehr im Umfang des Getters enthalten, sondern wird verarbeitet, sobald die Ergebnisse abgefragt werden, um dies nicht jedes Mal tun zu müssen, wenn die Daten abgefragt werden Eine zusätzliche Prüfung und Bearbeitung ist künftig erforderlich. Da der Getter nicht mehr enthalten ist, können die ursprünglichen Werte dieser Felder nicht abgerufen werden, einschließlich Feldern mit Typkonvertierungssatz und Feldern mit automatischer Zeitverarbeitung.

Die automatische Verarbeitung von Zeitfeldern ist eine vom Framework bereitgestellte Funktion zur Implementierung des automatischen Schreibens und der automatischen Ausgabekonvertierung von Zeitfeldern (einschließlich create_time und update_time, die benutzerdefinierte Feldnamen unterstützen).

Wenn Sie den ursprünglichen Wert des Zeitfelds abrufen müssen, müssen Sie die automatische Zeitfeldverarbeitungsfunktion deaktivieren, d. h. das Attribut autoWriteTimestamp auf false setzen und dann den Zeitfeld-Getter anpassen, um die Ausgabe zu übernehmen Denken Sie daran, das automatische Zeitfeld einmal zu deaktivieren. Bei der Verarbeitung müssen die Daten des Zeitfelds manuell geschrieben werden.

Wenn Sie möchten, dass das Zeitfeld automatisch geschrieben und verarbeitet wird, die Ausgabe jedoch nicht automatisch formatiert werden soll, können Sie das dateFormat-Attribut auf false setzen. Wenn es in der Datenbankkonfigurationsdatei festgelegt ist, sollte es wie folgt eingestellt werden:

// 自动写入时间戳字段
// true为自动识别类型 false关闭
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
'auto_timestamp'  => true,
 
// 时间字段取出后的默认时间格式
'datetime_format' => false,

Durch ein Upgrade auf die neueste Version von think-orm wurde das oben genannte Problem behoben. Bitte beachten Sie jedoch, dass es am besten ist, die Methode getOrigin anstelle von zu verwenden getData-Methode, um die Originaldaten in der definierten Methode abzurufen. Um die ursprünglichen Zeitfelddaten in der Container-Methode zu lesen, sollten Sie $this->origin['create_time'] anstelle von $data['create_time '] oder $this->data['create_time'].

Verwandte Empfehlungen: Die neuesten 10 Thinkphp-Video-Tutorials

Das obige ist der detaillierte Inhalt vonBezüglich der Anpassungen am Zeitfeld in der neuesten Version von ThinkORM. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:thinkphp. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen