## Yii2中ActiveRecord模型事件 ActiveRecord也支持模型事件,当模型被创建、更新或者删除的时候出发相应事件,ActiveRecord目前支持的事件类型:`beforeDelete`、`beforeSave`、`afterFind`、`afterSave`、`afterUpdate`、`afterDelete`、`afterRefresh`。 * `beforeDelete`和`afterDelete`很好理解,在删除模型时触发,`beforeDelete`在删除执行前操作,`afterDelete`在删除完成后执行。 * `afterFind`在模型进行查询操作时执行。 * `beforeSave($inser)`方法接受一个参数,是否为新增数据。 ``` /** * @param bool $insert * @return bool */ public function beforeSave($insert) { if (parent::beforeSave($insert)) { if ($insert) { // 新增操作 // do sth. } return true; } else { return false; } } ``` * `afterSave`在模型保存时候进行执行。 ``` /** * @param bool $insert * @param array $changedAttributes */ public function afterSave($insert, $changedAttributes) { if ( parent::afterSave($insert, $changedAttributes)) { if ($insert) { // 新增操作 // do sth. } else { // 编辑操作 // do other sth. } return true } else { return false; } } ``` * `afterUpdate`在模型更新时候执行。 ## 模型事件使用实例