自动插入创建人id和创建时间、自动更新修改人id和修改时间 [ 2.0 版本 ]
1.增加数据库字段如下:
created_by int
created_at datetime
updated_by int
created_at datetime
2.在需要的model文件中增加以下语句:
use yii\behaviors\TimestampBehavior;
use yii\behaviors\BlameableBehavior;
use yii\db\Expression;
/**
* @inheritdoc
* 插入创建者及创建时间/更新者及更新时间
*/
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'value' => new Expression('NOW()'),
],
BlameableBehavior::className(),
];
}
3.主要使用了2个行为:TimestampBehavior
和 BlameableBehavior
。前者自动插入当前时间,后者自动插入当前用户id
。
4.如果想使用其它名称的字段,需要修改相应的属性,详情请看类参考手册:
http://www.yiichina.com/doc/api/2.0/yii-behaviors-timestampbehavior
http://www.yiichina.com/doc/api/2.0/yii-behaviors-blameablebehavior
newyiier 北京
注册时间:2015-11-22
最后登录:2019-08-27
在线时长:2小时57分
最后登录:2019-08-27
在线时长:2小时57分
- 粉丝0
- 金钱80
- 威望10
- 积分200
共 3 条评论
学习了,。。
用beforeSave方法不就好了嘛?
正解 楼主方法太麻烦了 有简单的为啥不用呢
use yii\behaviors\TimestampBehavior; // 在基类添加 自动 修改时间 public function behaviors() { return [ [ 'class' => TimestampBehavior::className(), 'createdAtAttribute' => 'create_at', 'updatedAtAttribute' => 'update_at', 'value' => time(), ], ]; }