将新函数构建为afterSave()Yii

将新函数构建为afterSave()Yii,yii,yii-extensions,yii-components,Yii,Yii Extensions,Yii Components,我正在义乌建造一辆购物车。现在我想构建一个名为afterCharged()的函数,与afterSave()相同。那么怎样才能做到呢?提前谢谢你,正如Michiel所说,你应该在你的方法中使用事件 function charge(){ //Perform charge related actions $this->onCharge(new CEvent($this)); //... maybe some code over here after raising th

我正在义乌建造一辆购物车。现在我想构建一个名为afterCharged()的函数,与afterSave()相同。那么怎样才能做到呢?提前谢谢你,正如Michiel所说,你应该在你的方法中使用事件

function charge(){ 
    //Perform charge related actions
    $this->onCharge(new CEvent($this));
    //... maybe some code over here after raising the event
}

public function onCharge($event){
    $this->raiseEvent('onCharge', $event);
}
现在,您必须捕获引发的事件。因此,在这个组件中,您将声明需要捕获它的类和方法(例如在
init
方法中)

因此,当执行
charge()
时,将调用
OtherClass
afterCharge
方法

顺便说一下,afterCharge方法必须具有以下签名

function afterCharge($event) {
}
资料来源:


另外,我有一个问题:$component是全局变量。非常感谢,不,这是引发事件的类,因此您可以用$this替换它,还有一个问题:)。所以我可以在控制器类中使用事件?嗯,我想是的。如果我记得很清楚的话,事件是在CComponent中实现的,所以从它继承的每个类都可以使用事件。而cController扩展了CComponent,因此它应该可以工作:-)
function afterCharge($event) {
}