zoukankan      html  css  js  c++  java
  • [Yii Framework] 数据保存时自动插入createTime和updateTime

    在components文件夹下面建立一个文件AutoTimestampBehavior.php,里面的内容为
    <?php
    class AutoTimestampBehavior extends CActiveRecordBehavior {

    /**
    * The field that stores the creation time
    */
    public $createTime = 'creatTime';
    /**
    * The field that stores the modification time
    */
    public $updateTime = 'updateTime';


    public function beforeValidate($on) {
    if ($this->Owner->isNewRecord)
    $this->Owner->{$this->createTime} = new CDbExpression('NOW()');
    else
    $this->Owner->{$this->updateTime} = new CDbExpression('NOW()');

    return true;   
    }
    }
    然后在model里面使用这个行为插件
    public function behaviors(){
    return array(
    'AutoTimestampBehavior' => array(
    'class' => 'application.components.AutoTimestampBehavior',
    //You can optionally set the field name options here
    )
    );
    }

    其实在1.1 version之后,可以直接这样的了
    public function behaviors(){
    return array(
    'CTimestampBehavior' => array(
    'class' => 'zii.behaviors.CTimestampBehavior',
    'createAttribute' => 'create_time_attribute',
    'updateAttribute' => 'update_time_attribute',
    )
    );
    }

    如果model里面已经在使用public function behaviors(),记得要在前面加上parent::behaviors($on);

  • 相关阅读:
    window环境搭建zookeeper,kafka集群
    Spring Boot中使用Redis小结
    Spring Boot Mock单元测试学习总结
    Git快速入门进阶篇
    Git快速入门
    玩转Git入门篇
    Apache Kafka简介与安装(二)
    Apache Kafka简介与安装(一)
    Spring Boot中使用EhCache实现缓存支持
    java基础面试题(JVM篇)
  • 原文地址:https://www.cnblogs.com/davidhhuan/p/1717041.html
Copyright © 2011-2022 走看看