当从数据库加载记录并且模型对象(通常是后代)填充了适当的数据时,我找不到拦截事件的方法CActiveRecord
- 这与onAfterSave
. 文档列出了以下事件:onAfterConstruct
, onAfterDelete
, onAfterFind
, onAfterSave
,
onAfterValidate
, onBeforeDelete
, onBeforeFind
, onBeforeSave
, onBeforeValidate
, onUnsafeAttribute
.
唯一可能相关的是onAfterConstruct
,所以我在派生自的模型类中实现了事件处理程序CActiveRecord
,但它没有被调用。
更新:
除了接受的答案之外,我发现还有一个受保护的方法instantiate
,它的目的是相同的。它可以被覆盖以访问新实例的属性。最重要的是在记录的任何实例化之后调用它,而不仅仅是在 之后find
,因此它似乎更可靠。