Hi,
I’d like to add a behaviour to all my AR models and as I’m lazy, I don’t want to have to implement the behaviors function for each one of them, so I thought about overloading the CActiveRecord class and attach the behaviour in the constructor of the derived class (called ExActiveRecord)… this works perfectly.
Now, let's say that one model should not use this behaviour and so, what I did is, in the model constructor, I called detachBehaviour … but the behaviours remains.
I'm probably missing something here, but I don't know what … What am I doing wrong ?
Here is my code :
The new AR class
<?php class ExActiveRecord extends CActiveRecord { public function __construct($attributes=array(),$scenario='') { parent::__construct($attributes,$scenario); $this->attachbehavior('timeStamp', array( 'class' => 'application.models.behaviours.AutoTimestampbehavior', //You can optionally set the field name options here ) ); } } ?>
The model constructor :
<?php .... public static function model($className=__CLASS__) { $model=parent::model($timeStamp);; $model->detachbehavior('beforeSave'); return $model; } ?>
Thanks for your help