模型事件是指在进行模型的查询和写入操作的时候触发的操作行为。 > 模型事件只在调用模型的方法生效,使用查询构造器操作是无效的 模型事件其实是你模型操作中的一种解耦利器,如果不太了解的朋友,可以多研究下它们(可以查看[零基础视频模型事件](https://www.kancloud.cn/laowu199/wootp6/2409040))。系统中有很多功能,都是利用模型事件来完成的。 这里的模型事件,系统已经经过了改造,没有按照TP的文档来(当然底层还是按TP方式来的)。 模型事件列表: ~~~ // 查询后 public function afterReadCall() // 新增前 public function beforeInsertCall() // 新增后 public function afterInsertCall() // 更新前 public function beforeUpdateCall() // 更新后 public function afterUpdateCall() // 写入前 public function beforeWriteCall() // 写入后 public function afterWriteCall() // 删除前 public function beforeDeleteCall() // 删除后 public function afterDeleteCall() // 恢复前 public function beforeRestoreCall() // 恢复后 public function afterRestoreCall() ~~~ 为了防止父类模型事件中的代码丢失,我们建议你的事件代码是这样写的: ~~~ /** * 模型事件示范 * 自执行时机:新增后 */ public function afterInsertCall() { // 调用父类同名方法,防止父类定义的模型事件代码丢失 $parent_return = call_user_func(array('parent', __FUNCTION__)); // 在这里定义你自己的代码 ... return $parent_return; } ~~~