I came up with this yesterday after poking around with it for a few minutes. I don't know if this is the best way to keep track of create / last updated information.
In my model I have:
In my view I have
database I have
Here's what it looks like when the item has NOT been updated.
![: notupdated.png]()
Here's what it looks like when the item HAS been updated.
![: has been updated.png]()
This works I just don't know if it's the best way to do this as I have only been coding PHP/Yii for a short period of time (about 6 months) and would like to learn the right way vs. a way that just works.
I have Googled and searched a lot about the dates and it seems to be pretty controversial with Yii on how to do it.
Any input would be appreciated.
In my model I have:
....relations are defined like they should be..... public function beforeSave() { if ($this->getIsNewRecord()) { $this->create_time = new CDbExpression('NOW()'); $this->creator_id = Yii::app()->user->id; $this->update_time = new CDbExpression('NULL'); //set to null so it won't show the default jan, 1, 1970 1:00 if it's not set in my view.. now it will render what I want it to say see image. $this->update_id = new CDbExpression('NULL'); //set to null because I kept getting update_id not defined if it wasn't updated even though it's set to null in my db same w/above. } else { $this->update_time = new CDbExpression('NOW()'); $this->update_id = Yii::app()->user->id; } return parent::beforeSave(); }
In my view I have
<?php $this->widget('zii.widgets.CDetailView', array( 'data'=>$model, 'htmlOptions'=>array('class'=>'table table-striped table-bordered table-hover'), 'attributes'=>array( ....other attributes array('name'=>'creator_id', 'value'=>$model->creator->username), array( 'name' => 'create_time', 'value'=>date("M-d-Y h:i:A",strtotime($model->create_time)), ), array('name'=>'update_id', 'value'=>$model->update_id==null ? 'Has not been updated' : $model->update->username), array( 'name' => 'update_time', 'value'=>$model->update_time==null ? 'Has not been updated' :date("M-d-Y h:i:A",strtotime($model->update_time)), ), ), )); ?>
database I have
`creator_id` int(12) DEFAULT NULL, `create_time` timestamp NULL DEFAULT NULL, `update_id` int(11) DEFAULT NULL, `update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `creator_id` (`creator_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Here's what it looks like when the item has NOT been updated.

Here's what it looks like when the item HAS been updated.

This works I just don't know if it's the best way to do this as I have only been coding PHP/Yii for a short period of time (about 6 months) and would like to learn the right way vs. a way that just works.
I have Googled and searched a lot about the dates and it seems to be pretty controversial with Yii on how to do it.
Any input would be appreciated.