Note: currently a variant of this class
CTimestampBehavior
is included into Yii distribution package.
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.