thinkphp6.0模型篇之模型的自动时间戳和只读字段

一、模型自动时间戳

1、如果你想全局开启,在database.php中,设置为true

//自动写入时间戳字段
'auto_timestamp'=>true;

2、如果只想设置某一个模型开启,需要设置特有字段

//开启自动时间戳
protected $autoWriteTimestamp=true;

3、自动时间戳开启后会自动写入create_time和update_time两个字段,默认类型是int,如果是时间类型,可以更改如下

'auto_timestamp'=>'datetime';//或者
protected $autoWriteTimestamp='datetime';

4、当我们新增一条数据时,无需新增create_time会自动更新时间
5、自动时间戳只能再模型下有效,数据库方法不可以使用
6、如果创建和修改时间戳不是默认定义的,也可以自定义:

protected $createTime='create_at';
protected $updataTime='update_at';

7、如果业务中只需要create_time而不需要update_time,可以关闭它

protected $updateTime=false;

8、也可以动态实现不修改update_time,具体如下

$user->isAutoWriteTimestamp(false)->save();

二、模糊只读字段

1、模型中可以设置只读字段,就是无法被修改的字段设置
2、我们要设置username和email不允许被修改,如下

protected $readonly=['username','email'];

3、除了在模型端设置,也可以动态设置只读字段

$user->readonly(['username','email'])->save();

4、同样,只读字段只支持模型方式不支持数据库方式

你可能感兴趣的:(#,thinkphp6.0学习)