溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ThinkORM怎么調(diào)整時(shí)間字段

發(fā)布時(shí)間:2021-04-16 10:19:34 來(lái)源:億速云 閱讀:176 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下ThinkORM怎么調(diào)整時(shí)間字段,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

不少用戶在升級(jí)6.0最新版本框架后出現(xiàn)了獲取不到時(shí)間字段原始值的情況,這是因?yàn)閠hink-orm庫(kù)的一個(gè)最新調(diào)整導(dǎo)致的。

在最新的ThinkORM中,字段類型和時(shí)間字段的自動(dòng)處理不再納入獲取器范疇,而是在查詢到結(jié)果后的第一時(shí)間就進(jìn)行了處理,避免以后每次調(diào)用數(shù)據(jù)的時(shí)候都要進(jìn)行一次額外的檢測(cè)和處理。而由于不再納入獲取器,所以導(dǎo)致無(wú)法獲取這些字段的原始值,包括設(shè)置了類型轉(zhuǎn)換的字段和自動(dòng)時(shí)間處理字段。

時(shí)間字段的自動(dòng)處理是框架提供的實(shí)現(xiàn)時(shí)間字段(包括create_time和update_time,支持自定義字段名)的自動(dòng)寫(xiě)入和自動(dòng)輸出轉(zhuǎn)換功能。

如果你需要獲取時(shí)間字段的原始值,那么需要關(guān)閉自動(dòng)時(shí)間字段處理功能,也就是設(shè)置autoWriteTimestamp屬性為false,然后對(duì)時(shí)間字段自定義獲取器接管時(shí)間字段的輸出,并且記得一旦關(guān)閉自動(dòng)時(shí)間字段處理,時(shí)間字段的數(shù)據(jù)寫(xiě)入必須手動(dòng)寫(xiě)入。

如果你希望時(shí)間字段自動(dòng)寫(xiě)入處理,但不希望進(jìn)行自動(dòng)格式化輸出,可以設(shè)置dateFormat屬性為false。如果在數(shù)據(jù)庫(kù)配置文件中設(shè)置的話,應(yīng)該如下設(shè)置:

// 自動(dòng)寫(xiě)入時(shí)間戳字段
// true為自動(dòng)識(shí)別類型 false關(guān)閉
// 字符串則明確指定時(shí)間字段類型 支持 int timestamp datetime date
'auto_timestamp'  => true,
 
// 時(shí)間字段取出后的默認(rèn)時(shí)間格式
'datetime_format' => false,

think-orm升級(jí)到最新版本已經(jīng)修正上述問(wèn)題,但注意獲取原始數(shù)據(jù)最好是用getOrigin方法替代getData方法,如果你需要在定義的獲取器方法中讀取原始的時(shí)間字段數(shù)據(jù),應(yīng)該用$this->origin['create_time']而不是用 $data['create_time']或者$this->data['create_time']。

看完了這篇文章,相信你對(duì)“ThinkORM怎么調(diào)整時(shí)間字段”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI