系统支持自动写入创建和更新的时间戳字段,有两种方式配置支持。 第一种方式,是在数据库配置文件中添加全局设置: //
开启自动写入时间戳字段 'auto_timestamp'
=> true, 第二种是直接在单独的模型类里面设置: protected
$autoWriteTimestamp = true; 如果这两个地方设置为true,默认识别为整型int 类型,如果你的时间字段不是int 类型的话,例如使用 datetime
类型的话,可以这样设置: //
开启自动写入时间戳字段 'auto_timestamp'
=> 'datetime', 或者 protected
$autoWriteTimestamp = 'datetime'; 字段名默认创建时间字段为create_time ,更新时间字段为update_time ,支持的字段类型包括 timestamp/datetime/int
。 写入数据的时候,系统会自动写入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+
版本开始,时间字段输出的时候会自动进行格式转换,如果不希望自动格式化输出,可以把数据 库配置文件的 datetime_format 参数值改为false ( V5.0.6+ 版本支持,之前版本可以使用类 型转换方式关闭自动格式化) 数据表字段名不是默认的create_time可以用此方式设置数据库字段自动写入时间,如数据库字段名为create_at。数据表字段名为默认值create_time时会直接写入。: 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, |