обработчик событий в модели

Пытаюсь добавить обработчик события (afterFind) в модели:


class MyModel extends CActiveRecord

{	 

	public function onAfterFind($event){

		echo 'On after find';

		exit;

	}

//.....


}



здесь я указал только часть модели.

но после

MyModel::model()->find()

не происходит запуска метода onAfterFind.

на практике мне нужно вносить изменения в модель - сериализировать поле перед сохранением, и десериализировать после поиска.

Подскажите что я делаю не правильно.


public function afterFind()

{

  // твой код

  return parent::afterFind();

}

Спасибо, так вроде работает.

руководствовался

либо чего-то не понял, либо там опечатка???

У меня тоже не работает как там указано, опуская приставку "on" - все ок

В общем-то, в описании к CActiveRecord.afterFind() всё сказано:

И еще




return parent::afterFind();



правильнее в данном случае заменить на




parent::afterFind();



хотя это ничего и не изменит, зато меньше букв писать :)

оригинальный код из CActiveRecord


protected function afterFind()

	{

		if($this->hasEventHandler('onAfterFind'))

			$this->onAfterFind(new CEvent($this));

	}




получается что метод запустится если есть обработчики события, получается правильнее - навесить обработчик с помощью attachEventHandler, только где его навесить лучше…

Не надо ничего в этом случае навешивать. Методы afterFind, beforeSave, afterSave, beforeValidate и т.п. созданы для перегрузки и помещения в них своего кода (при условии, что будет вызван оригинальный метод, генерирующий соответствующее событие).