時間戳
版本 | 調(diào)整功能 |
---|---|
5.0.10 |
增加autoWriteTimestamp 方法動態(tài)設置時間字段寫入 |
5.0.6 | 增加時間字段自動格式輸出設置 |
5.0.5 | 時間戳字段支持自動格式化輸出 |
autoWriteTimestamp 屬性支持設置為時間日期類名 |
系統(tǒng)支持自動寫入創(chuàng)建和更新的時間戳字段,有兩種方式配置支持。
第一種方式,是在數(shù)據(jù)庫配置文件中添加全局設置:
// 開啟自動寫入時間戳字段
'auto_timestamp' => true,
第二種是直接在單獨的模型類里面設置:
protected $autoWriteTimestamp = true;
如果這兩個地方設置為true,默認識別為整型int
類型,如果你的時間字段不是int
類型的話,例如使用datetime
類型的話,可以這樣設置:
// 開啟自動寫入時間戳字段
'auto_timestamp' => 'datetime',
或者
protected $autoWriteTimestamp = 'datetime';
字段名默認創(chuàng)建時間字段為create_time
,更新時間字段為update_time
,支持的字段類型包括timestamp/datetime/int
。
寫入數(shù)據(jù)的時候,系統(tǒng)會自動寫入create_time
和update_time
字段,而不需要定義修改器,例如:
$user = new User();
$user->name = 'THINKPHP';
$user->save();
echo $user->create_time; // 輸出類似 2016-10-12 14:20:10
echo $user->update_time; // 輸出類似 2016-10-12 14:20:10
V5.0.5+
版本開始,時間字段輸出的時候會自動進行格式轉換,如果不希望自動格式化輸出,可以把數(shù)據(jù)庫配置文件的datetime_format
參數(shù)值改為false
(V5.0.6+
版本支持,之前版本可以使用類型轉換方式關閉自動格式化)
如果你的數(shù)據(jù)表字段不是默認值的話,可以按照下面的方式定義:
class User extends Model
{
// 定義時間戳字段名
protected $createTime = 'create_at';
protected $updateTime = 'update_at';
}
下面是修改字段后的輸出代碼:
$user = new User();
$user->name = 'THINKPHP';
$user->save();
echo $user->create_at; // 輸出類似 2016-10-12 14:20:10
echo $user->update_at; // 輸出類似 2016-10-12 14:20:10
如果你只需要使用create_time
字段而不需要自動寫入update_time
,則可以單獨設置關閉某個字段,例如:
class User extends Model
{
// 關閉自動寫入update_time字段
protected $updateTime = false;
}
如果不需要任何自動寫入的時間戳字段的話,可以關閉時間戳自動寫入功能,設置如下:
class User extends Model
{
// 關閉自動寫入時間戳
protected $autoWriteTimestamp = false;
}
如果是關閉全局的自動時間寫入,則可以使用:
// 關閉全局自動寫入時間字段
'auto_timestamp' => false,
文檔最后更新時間:2018-04-26 10:06:05
未解決你的問題?請到「問答社區(qū)」反饋你遇到的問題