モデルのafterFind()でcreate_timeとupdate_timeをリセットしてcreate_timeを設定するためにCTimeStampBehaviourを使用しています。基本的に、フロントエンドに表示される日付の形式を設定しています。ただし、モデルのafterFind()を使用するとcreate_timeが0000-00-00 00:00:00に送信されるため、これは機能しません。モデルのafterFind()にコメントすると、正常に機能します。
私は自分のモデルでこの関数を使用しました:
public function behaviors(){
return array(
'CTimestampBehavior' => array(
'class' => 'zii.behaviors.CTimestampBehavior',
'createAttribute' => 'create_time',
'updateAttribute' => 'update_time',
'setUpdateOnCreate'=> true,
)
);
}
yiiサイトのCTimeStampBehaviorクラスのドキュメントを見ましたが、afterFind()継承への参照がありますが、その使用方法は示されていません。私は次のようなモデルでafterFind()を使用しています:
protected function afterFind() {
parent::afterFind();
$this->create_time = Yii::app()->dateFormatter->formatDateTime(
CDateTimeParser::parse(
$this->create_time, 'yyyy-MM-dd hh:mm:ss'
), 'short', 'short'
);
return true;
}
afterFind()を使用するときにcreate_timeがゼロで埋められる理由を誰かが提案できますか?