# Model事件实战应用---数据库操作日志 >[info] 我们在模型的基类中 建立一个 使用静态方法完成写入日志,修改日志我就贴代码了 > self::event('after_insert', function ($model) { > } ~~~ <?php /** * Created by PhpStorm. * Power by Mikkle * QQ:776329498 * Date: 2017/4/14 * Time: 16:23 */ namespace app\base\model; use think\Model; use think\Request; use think\Session; class Base extends Model { protected static function init() { self::event('after_insert', function ($model) { //获取执行的model名称 $base_name = basename(str_replace('\\', '/', get_called_class()), '.php'); $request = Request::instance(); $guid = $request->param('id'); $data=[]; if (method_exists($model, 'data')){ if (empty($guid)&& isset($model->data['guid'])){ $guid = $model->guid; } if (empty($guid) && isset($model->data['uuid'])){ $guid = $model->uuid; } } if (empty($data["guid"]) && !empty($request->param('guid'))){ $data["guid"] = $request->param('guid'); } $data["uuid"] = Session::get('uuid', 'Global'); $data['type']="after_insert"; $data['url']=$request->url(); $data['model_name']=$base_name; $data["guid"]=$guid; $data["param"]=json_encode($request->param()); $data["ip"]=$request->ip(); $data["content"]=json_encode($model->getData()); $data["update_time"]=time(); $model->table('mk_system_log')->insert($data); }); } } ~~~ 数据库记录的结果 ![](https://box.kancloud.cn/e092ba46f6d69da639fe8fff0066ee2b_790x273.png) >[danger] 其实 基类中的事件功能可以扩展很多使用方法 > 我们使用下面的方法获取到了 model的名称 > $base_name = basename(str_replace('\\', '/', get_called_class()), '.php'); > 回调函数中的$model对象中 有我们需要的数值 > self::event('after_insert', function ($model) { > } > 配合config 自定义的数值 我们可以进行个性化的操作