помогите разобраться attachBehavior или disableBehavior при загрузке

Пытаюсь реализовать Behavior:


<?php

class OldAttributesBehavior extends CActiveRecordBehavior

{

    private $_oldattributes = array();

	

    public function afterFind($event)

    {

        // Save old values

        Yii::trace(get_class($this->getOwner()).'.'.get_class($this).'.afterFind()','app.components.behaviors');

        $this->setOldAttributes($this->Owner->getAttributes());

    }


    public function getOldAttributes()

    {

        return $this->_oldattributes;

    }


    public function setOldAttributes($value)

    {

        $this->_oldattributes=$value;

    } 

}

Это нужно когда используеться акшин Update или Delete в нескольких модулях,

как уже не пробыл в моделе:


	public function behaviors()

	{

		return array(

			'OldAttributes' => array(

				'class'=>'application.components.behaviors.OldAttributesBehavior',

				'enabled'=>false,

			),

		);

	}

а в контролере


				$model=new User;

				$model->enableBehavior('OldAttributes');

				$this->_model=$model->findbyPk($_GET['id']);

или делал в контролере атач (в моделе ничего не прописывая):


	public function loadModel()

	{

		if($this->_model===null)

		{

			if(isset($_GET['id']))

				$model=new User;

				$model->attachBehavior('OldAttributes', new OldAttributesBehavior);

				$this->_model=$model->findbyPk($_GET['id']);

			if($this->_model===null)

				throw new CHttpException(404,'The requested page does not exist.');

		}

		return $this->_model;

	}

в конфиге прописывал импорт ‘import’=>array(…,‘application.components.behaviors.*’,…)

в логах в первом варианте app.components.behaviors User.OldAttributesBehavior.afterFind() всегда (при любом акшене), во втором варианте никогда, что не правильно делаю??

добавил в OldAttributesbehavior


	public function add($a,$<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='B)' />

	{

		return $a+$b;

	}

так вот при таких манипуляциях:


				$model->attachBehavior('OldAttributes', new OldAttributesBehavior);

				Yii::trace($model->add(5,6),'app.controller.UserController');

				$model->enableBehavior('OldAttributes');

				Yii::trace($model->add(5,6),'app.controller.UserController');

				$model->disableBehavior('OldAttributes');

				//Yii::trace($model->add(5,6),'app.controller.UserController');

закоментировання строчка выдавала ошибка тоесть все в порядке.

Вывод что public function afterFind($event) нельзя загрузить через $model->attachBehavior и нельзя отключить методом $model->disableBehavior, как быть??

Кому интересно, я разобрался, только верного ответа так и нету,

Проблема в том что при выключении поведения (disablebehavior) - события (event) не выключаются, во втором случае при динамических поведениях, событие afterFind не учитывает, а берется только те поведения, что прописаны в файле модели в функции behaviors (нашел в CActiveRecord.php функция populateRecord и instantiate).

Когда узнал почему не работает нашел тему http://www.yiiframework.com/forum/index.php?/topic/4361-attach-behavior-to-a-model, там предлагают: