You are viewing revision #1 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.
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
)
);
}
User Contributed Notes 1
standard SQL
I'm used to write the constant CURRENT_TIMESTAMP, it works in PostgreSQL and MySQL and SQLite.
Leave a comment
If you have any questions, please ask in the forum instead.
Join the conversation to share a note.