Yii中Model/ActiveRecord的"加载后"事件

Sta*_*tan 0 yii

当从DB加载记录并且CActiveRecord用适当的数据填充模型对象(通常是后代)时,我找不到拦截事件的方法- 这是一种类似的东西onAfterSave.该文件列出了以下事件:onAfterConstruct,onAfterDelete,onAfterFind,onAfterSave, onAfterValidate,onBeforeDelete,onBeforeFind,onBeforeSave,onBeforeValidate,onUnsafeAttribute.

唯一可能相关的是onAfterConstruct,所以我在我的模型类中实现了事件处理程序CActiveRecord,但是它没有被调用.

更新:

除了接受的答案之外,我还发现有一种受保护的方法instantiate,其目的非常相同.可以重写它以访问新实例的属性.最重要的是,它在记录的任何实例化之后调用,不仅仅在之后find,因此它似乎更可靠.

小智 5

我认为你要找的是onAfterFind()onAfterFind()在实例化记录之后引发,vs onAfterConstruct()在由new运算符创建模型实例之后引发