AutoTimestampBehavior

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

Russian Version

2 2
3 followers
Viewed: 23 463 times
Version: 1.1
Category: Tutorials
Tags:
Written by: jonah
Last updated by: Yang He
Created on: Feb 19, 2009
Last updated: 12 years ago
Update Article

Revisions

View all history