0

我正在尝试将一些听众附加到一个CActiveRecordonBeforeDelete,我这样做如下:

<?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遗憾的是,这对's没有任何影响delete()。但是,当替换onBeforeDelete为 时onBeforeFind,它似乎对 find 方法做出了无缝反应。我觉得 onBeforeDelete 应该应用于一个实例Submission而不是它的单例模型,这种感觉是否正确?如果我是正确的,还有其他方法可以将我的事件侦听器附加到全局Submission吗?

提前致谢!

4

1 回答 1

0

我已经设法通过一点即兴解决了这个问题,我已经覆盖了Submission's 函数beforeDelete()如下:

<?php
protected function beforeDelete() {
    foreach (Submission::model()->onBeforeDelete as $key => $value) {
        $this->onBeforeDelete = $value;
    }
    return parent::beforeDelete();
}
?>

现在,当调用 delete 时,beforeDelete()将从单例模型中删除 onBeforeDelete 并将其分配给它自己的实例。现在,正在触发回调。

于 2013-08-22T08:45:39.097 回答