加载对象/创建对象时设置基本 class 属性值 yii

Set base class attribute values while loading object / creating objects yii

我有两个继承自公共基础的模型 class。

class Batsmen extends CPlayer{
    batsmen_id      // model field.
    batsmen_name    // model field.
}

class Bowler extends CPlayer{
    bowler_id       // model field.
    bowler_name     // model field.    
}

// 组件 class 用作模型击球手和投球手模型的基础 class。

class CPlayer extends CActiveRecord{
    public player_id;
    public player_name;
}

我想在加载对象时或创建对象后将 Batsmen/Bowler 的属性值加载到基础 class CPlayer 属性中。我该怎么做?

如果要在模型加载后将 batsmen_id 设置为 player_id,请使用 afterFind 方法:

protected function afterFind(){
  parent::afterFind();
  $this->player_id = $this->batsmen_id;
}

如果你只是初始化对象使用 init

public function init(){
  parent::init();
  $this->player_id = $this->batsmen_id;
}