newyiier 2016-12-24 22:10:20 9708次浏览 3条评论 5 0 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个行为:TimestampBehaviorBlameableBehavior。前者自动插入当前时间,后者自动插入当前用户id
4.如果想使用其它名称的字段,需要修改相应的属性,详情请看类参考手册:
http://www.yiichina.com/doc/api/2.0/yii-behaviors-timestampbehavior
http://www.yiichina.com/doc/api/2.0/yii-behaviors-blameablebehavior

  • 评论于 2017-01-06 16:27 举报

    学习了,。。

  • 评论于 2017-03-18 15:07 举报

    用beforeSave方法不就好了嘛?

    1 条回复
    评论于 2017-07-26 16:58 回复

    正解 楼主方法太麻烦了 有简单的为啥不用呢

  • 评论于 2018-04-23 15:37 举报
    use yii\behaviors\TimestampBehavior;
    // 在基类添加 自动 修改时间
    public function behaviors()
    {
        return [
            [
                'class' => TimestampBehavior::className(),
                'createdAtAttribute' => 'create_at',
                'updatedAtAttribute' => 'update_at',
                'value' => time(),
            ],
        ];
    }
    
您需要登录后才可以评论。登录 | 立即注册