phpyiiyii-events

Yii afterfind is not firing


I am not sure why my yii afterFind method is not firing. Below is what i used to test the yii afterfind method. For every find, the first_name should be "hahahahahaa". This is just to test that the afterfind is working

Below is my model class of user:

class User extends CActiveRecord
{
 public function getUserInfo($userid,$is_all=false){
         $criteria = new CDbCriteria;
         $criteria->select = 'id,email,first_name,last_name,gender,username,country,balance_bids';
         if($is_all ){
             $criteria->select = 'id,email,first_name,last_name,gender,username,country,'
                 . 'dob,address1,address2,zip,balance_bids,mobile';
         }
         $criteria->condition = "id=:userid";
         $criteria->params = array(':userid'=>$userid); 

         return User::model()->find($criteria);
 }

 protected function  afterFind(){
      $this->first_name = "hahahaha";
      parent::afterFind();

 }

}

However when I call the getUserInfo () method from the controller, the afterfind method isn't firing at all. The first_name isn't "hahahahaha".


Solution

  • how about

     User::model()->find($criteria);
    

    because you declared static function, and usage of $this is not recommended