You are viewing revision #3 of this wiki article.
This version may not be up to date with the latest version.
You may want to view the differences to the latest version or see the changes made in this revision.
This behavior will automatically set timestamp fields to the row creation and modification times.
<?php
class AutoTimestampBehavior extends CActiveRecordBehavior {
/**
* The field that stores the creation time
*/
public $created = 'created';
/**
* The field that stores the modification time
*/
public $modified = 'modified';
public function beforeValidate($on) {
if ($this->Owner->isNewRecord)
$this->Owner->{$this->created} = new CDbExpression('NOW()');
else
$this->Owner->{$this->modified} = new CDbExpression('NOW()');
return true;
}
}
Installing to a model ¶
Drop the following into your model to install it:
public function behaviors(){
return array(
'AutoTimestampBehavior' => array(
'class' => 'application.components.AutoTimestampBehavior',
//You can optionally set the field name options here
)
);
}
standard SQL
I'm used to write the constant CURRENT_TIMESTAMP, it works in PostgreSQL and MySQL and SQLite.
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.