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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值