我正在尝试将一些侦听器附加到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的delete()没有任何影响。不过,当用onBeforeFind替换onBeforeDelete时,它似乎可以无缝地在find方法上做出反应。我觉得onBeforeDelete应该应用于Submission的一个实例,而不是它的单例模型,这种感觉对吗?如果我是正确的,有没有其他方法可以在每个Submission上附加全局事件侦听器
提前感谢!
发布于 2013-08-22 16:45:39
我已经设法通过一点即兴创作解决了这个问题,我已经重写了Submission的beforeDelete()函数,如下所示:
<?php
protected function beforeDelete() {
foreach (Submission::model()->onBeforeDelete as $key => $value) {
$this->onBeforeDelete = $value;
}
return parent::beforeDelete();
}
?>现在,当调用delete时,beforeDelete()将从单例模型中取出onBeforeDelete并将其分配给自己的实例。现在,回调正在被触发。
https://stackoverflow.com/questions/18373962
复制相似问题