Yii2.0-advanced-5—行为的使用(自动生成model时间数据)
来源:互联网 发布:枪匠遥感勘测数据 编辑:程序博客网 时间:2024/05/22 06:42
行为是 yii\base\Behavior 或其子类的实例。 行为,也称为 mixins, 可以无须改变类继承关系即可增强一个已有的 组件 类功能。 当行为附加到组件后,它将“注入”它的方法和属性到组件, 然后可以像访问组件内定义的方法和属性一样访问它们。 此外,行为通过组件能响应被触发的事件,从而自定义或调整组件正常执行的代码。
一、行为 Behavior 相关概念
1、行为的定义,
2、行为附加
3、行为使用
4、行为移除
5、处理事件
以上官方权威指南有详细讲解,http://www.yiichina.com/doc/guide/2.0/concept-behaviors
二、使用 timeStampBehavior
这个行为支持在 Active Record 存储时自动更新它的时间戳属性
namespace app\models\User;use yii\db\ActiveRecord;use yii\behaviors\TimestampBehavior;class User extends ActiveRecord{ // ... public function behaviors() { return [ [ 'class' => TimestampBehavior::className(), 'attributes' => [ ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'], ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'], ], // if you're using datetime instead of UNIX timestamp: // 'value' => new Expression('NOW()'), ], ]; }}
以上指定的行为数组:
- 当记录插入时,行为将当前时间戳赋值给
created_at
和updated_at
属性; - 当记录更新时,行为将当前时间戳赋值给
updated_at
属性。
注意:For the above implementation to work with MySQL database, please declare the columns(
created_at
,updated_at
) as int(11) for being UNIX timestamp.
With that code in place, if you have a User
object and try to save it, you will find its created_at
and updated_at
are automatically filled with the current UNIX timestamp:
$user = new User;$user->email = 'test@example.com';$user->save();echo $user->created_at; // 显示当前时间戳
TimestampBehavior 行为还提供了一个有用的方法 touch(), 这个方法能将当前时间戳赋值给指定属性并保存到数据库:
$user->touch('login_time');
- Yii2.0-advanced-5—行为的使用(自动生成model时间数据)
- Yii2.0中model的validator生成和运行浅析
- Yii2.0-advanced-4—数据迁移和gii
- Yii2.0-advanced-9—使用事件发送邮件
- Yii2.0-advanced-8—图片上传之webuploader的使用
- Yii2用Gii自动生成Module+Model+CRUD
- Yii2用Gii自动生成Module+Model+CRUD
- Yii2学习笔记(九):行为Behavior的使用
- Yii2.0-advanced-7—静态资源配置(Assets)
- Yii2.0-advanced-8—主题配置(themes)
- Yii2.0-advanced-9—缓存配置(redis)
- Yii2.0-advanced-10—数据库操作6(事务)
- Yii2.0-advanced-10—数据库操作5(多数据库配置)
- YII2.0-advanced-4—URL美化
- Yii2.0-advanced-3—语言包配置
- Yii2.0-advanced-11—restfull架构
- Yii2.0 框架安装(Advanced)
- yii2.0 安装advanced 模版(window)
- 想进一线互联网公司的应届生注意啦~2018 届校招的情况有些变化
- 最大流-Dinic算法
- list添加集合被覆盖,利用map求和——代码应该怎么放
- window.location.search实现页面跳转传参
- 一张表了解四大物联网通信技术差异:NB-IoT 、LTEeMTC、LoRa与SigFox
- Yii2.0-advanced-5—行为的使用(自动生成model时间数据)
- Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.Log4jLoggerFa
- 为SaaS搜索引擎优化的3个技巧
- Gym Class(拓扑排序,STL应用)
- 使用Xcode9的Instruments检测解决iOS内存泄露
- 几分钟教你做个原创视频,赚钱引流两不误
- 选择保存目录文件夹
- 实验吧 逆向 小练习
- 图像去噪——椒盐噪声与高斯噪声