我正在尝试将一些听众附加到CActiveRecord
的onBeforeDelete上,我这样做如下:
<?php
class SomeModule extends CWebModule
{
public function init()
{
Submission::model()->onBeforeDelete = array($this, 'cleanUpFiles');
}
public function cleanUpFiles ($event) {
var_dump('Well... Hi there, being deleted are we?');
}
}
?>
可悲的是,这对Submission
的{{1}}没有任何影响。但是,在用delete()
替换onBeforeDelete
时,似乎无法对查找方法做出无缝反应。我感觉onBeforeDelete应该应用于onBeforeFind
的实例,而不是它的单例模型,感觉是否正确?如果我是正确的,有没有其他方法可以在Submission
的全局中将我的事件监听器附加到全局?
提前致谢!
答案 0 :(得分:0)
我设法通过一点即兴来解决这个问题,我已经覆盖了Submission
的函数beforeDelete()
,如下所示:
<?php
protected function beforeDelete() {
foreach (Submission::model()->onBeforeDelete as $key => $value) {
$this->onBeforeDelete = $value;
}
return parent::beforeDelete();
}
?>
现在,当调用delete时,beforeDelete()
将从单例模型中删除onBeforeDelete并将其分配给它自己的实例。现在,正在触发回调。