比如在我们的文章表中,有create_time和update_time两个字段,在yii里面,不用我们每次都去更新他们,可以利用Yii的行为更新时间。
在对应的model引入use yii\behaviors\TimestampBehavior;,利用TimestampBehavior这个类处理。
然后定义model的behaviors

public function behaviors(){return [['class' => TimestampBehavior::className(),'attributes' => [# 创建之前ActiveRecord::EVENT_BEFORE_INSERT => ['create_time', 'update_time'],# 修改之前ActiveRecord::EVENT_BEFORE_UPDATE => ['update_time']],#设置默认值'value' => time()]];}

观察yii\behaviors\TimestampBehavior 的源码可以看见。定义了两个变量,created_at和updated_at。
假设数据库中的创建时间字段和更新时间字段都是这个名。
可以直接在behaviors方法里面写以下代码

return [
        TimestampBehavior::className();
]

此时我们用模型更新和新建数据的时候就就会自动更新两个字段了。

再次查看yii\behaviors\BlameableBehavior 里面有两个属性,created_by和updated_by,意如其名,是用来记录某一列数据的更新者和创建者,同样假设数据中已经有这两个字段了。
我们只需要在模型的behaviors方法引入他就能自动更新这两个字段。

return [
        BlameableBehavior::className();
]

这里的字段名也可以自己自定义。写一个类继承自这个class类,里面定义和父类同样的变量名,设置为自己想要的值,我们引用自己定义的类,就实现了自定义字段名。

yii2自动更新时间相关推荐

  1. mysql 数据表 时间自动_MySQL数据库时间设置自动添加时间和自动更新时间

    MySQL字段中设置时间字段自动添加创建时间和自动更新时间设置, 设置字段类型为:timestamp 默认值设置为current_timestamp(), 更新时间字段字段类型为:timestamp ...

  2. Android自动更新时间去除WIFI无法连接互联网提示

    使用AOSP项目编译的Android系统,由于一些网络问题导致手机无法自动更新时间,在连接WIFI时也可以看到无法连接互联网的提示. 一.环境准备 (1) Android系统源码编译环境(Androi ...

  3. w32time服务自动更新时间(NTP)

    简介 NTP:"用来使计算机时间同步化的一种协议" 功能要求: 开机后自动更新时间,定时与时间服务器校正时间 实现: 同步频率 项:SYSTEM\\CurrentControlSe ...

  4. Win10无法自动更新时间

    关于Win10时间设置为自动获取时间仍然无法自动更新时间 按着 win键+r键 输入 services.msc 按回车. 步骤1以后,windows将弹出windows服务管理窗口. 在步骤2的窗口中 ...

  5. android 验证码按钮点击,判断网络和匹配手机号并自动更新时间;

    开发过程中会遇见很多app注册时需要通过手机发送验证码验证,并获取验证码进行验证,在发送验证码时会有个手机号判断和网络链接及按钮上的数字自动递减:为后续用起来方便,特地做个记录: 在布局之前先要做的是 ...

  6. 关于MyBatis-Plus自动更新时间的小坑

    MySQL数据表 `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` dat ...

  7. mysql timestamp 更新操作_MySQL timestamp自动更新时间

    在mysql中timestamp数据类型是一个比较特殊的数据类型,他可以自动在你不使用程序更新情况下,插入或者修改记录会自动更新timestamp的值. 1.ON UPDATE CURRENT_TIM ...

  8. mysql 自动更新时间_如何设置mysql自动更新创建时间和更新时间

    做项目时,希望: 新增记录时,mysql自动将系统的当前时间set到创建时间和更新时间这两个字段中. 更新记录时,mysql只update更新时间字段的时间. 设置mysql自动更新创建时间和更新时间 ...

  9. Linux系统自动更新时间

    linux运维工程师经常会遇到服务器时间不一致问题,今天给大家介绍一种方法更新时间 安装NTP客户端 yum -y install ntp 修改时区为Asia: cp /usr/share/zonei ...

  10. mysql使用navicat(建表前与建表后)添加时间戳(创建时间、自动更新时间)

    为了知道我们插入更新数据的时间,mysql建表增加以下代码 目录 一.建表时添加 1.1代码 1.2举例 二.建表后添加 2.1举例 2.2代码 2.3运行结果 一.建表时添加 1.1代码 creat ...

最新文章

  1. 形象理解深度学习中八大类型卷积
  2. J - Max Sum
  3. liferay 导入源码问题
  4. document.compatMode的CSS1compat
  5. 当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?请从技术的角度描述,如浏览器、网络(UDP、TCP、HTTP等),以及服务器等各种参与对象上由此引发的一系
  6. 自学Java必看的知识点,猿们怎么看?
  7. 两个int()方法的区别
  8. VScode使用gitbash的配置方法
  9. java接口回调学习
  10. 通向AGI(通用人工智能)的另类书单
  11. 为什么大家越来越重视大数据的发展?
  12. 【基本办公软件】万彩办公大师教程丨二维条码制作工具
  13. 实验6 Matlab数值计算
  14. HTML表单基本结构
  15. React学习笔记之四---抽离组件
  16. mapper找不到报错:Field xxxMapper in xxx required a bean of type 'xxxMapper' that could not be found
  17. 蓝桥杯单片机(十一)PCF8591(A/D转换)
  18. 根据显卡型号查看相应的驱动
  19. 2021 年,中台的“瓜”你还吃吗?
  20. css 标记选择器,CSS标记选择器

热门文章

  1. caniuse_使用此工具将CanIUse表嵌入到您的网站中
  2. 触摸屏怎么禁止浏览器窗口的缩放
  3. 《全程软件测试第三版》读书笔记
  4. SpringBoot接入Ueditor编辑器
  5. 【论文阅读】Reviving Iterative Training with Mask Guidance for Interactive Segmentation
  6. java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled.
  7. 宝塔同时安装苹果cms海洋cms_苹果cms和海洋cms通用的百度主动推送工具
  8. 腾讯开发微信花了多少钱?程序员告诉你有多劳民伤财
  9. IDEAR 自动生成serialVersionUID
  10. 冯成毅:各类交易者的深度心理剖析