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);

  • 相关阅读:
    Java中的并发库学习总结
    Android源码的git下载地址
    Android下载Android源码
    工具类 验证手机邮箱
    hibernate缓存说明
    Hibernate之N+1问题
    常用正则
    Java Base64加密、解密原理Java代码
    Base64加密解密原理以及代码实现(VC++)
    情书经典语录
  • 原文地址:https://www.cnblogs.com/davidhhuan/p/1717041.html
Copyright © 2011-2022 走看看