Php 在加载对象/创建对象yii时设置基类属性值
我有两个从公共基类继承的模型Php 在加载对象/创建对象yii时设置基类属性值,php,yii,base-class,Php,Yii,Base 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 Batsmen extends CPlayer{
batsmen_id // model field.
batsmen_name // model field.
}
class Bowler extends CPlayer{
bowler_id // model field.
bowler_name // model field.
}
//组件类,用作击球手和投球手模型的基类
class CPlayer extends CActiveRecord{
public player_id;
public player_name;
}
我想在加载对象时或创建对象后,将击球手/投球手的属性值加载到基类CPlayer属性中。如何执行此操作?如果要在模型加载后将击球手id设置为球员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;
}
是的,我试过用afterFind。但它不会在我执行findByPk之后调用该事件。默认情况下,findByPk总是在find事件之后出现。所以在你的类逻辑中可能有错误。这是我的错误,我使用了onAfterFind而不是afterFind。但是对于init(),我创建了一个新对象并保存了它,但没有设置父属性的值。
create object!=保存型号
:)在afterSave中进行分配。带有on*的方法以另一种方式使用。