博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
非常简单的方法在你的后台添加《系统管理员操作日志》的功能
阅读量:6433 次
发布时间:2019-06-23

本文共 1557 字,大约阅读时间需要 5 分钟。

出于监控多用户操作后台的目的,往往需要把各个管理员操作了什么记录下来。

这个功能用yii2来实现简直是太简单了!下边上代码~

此demo基于advanced,具体功能可以参考 帐号demo 密码111111

1、在backend目录创建components/AdminLog.php

changedAttributes)) { $desc = ''; foreach($event->changedAttributes as $name => $value) { $desc .= $name . ' : ' . $value . '=>' . $event->sender->getAttribute($name) . ','; } $desc = substr($desc, 0, -1); $description = Yii::$app->user->identity->username . '修改了' . $event->sender->className() . 'id:' . $event->sender->primaryKey()[0] . '的' . $desc; $route = Url::to(); $userId = Yii::$app->user->id; $model = new \common\models\AdminLog(); $data = [ 'route' => $route, 'description' => $description, 'user_id' => $userId, 'created_at' => time(), ]; $model->setAttributes($data); $model->save(); } }}

2、在backend/config/main.php添加

'on beforeRequest' => function($event) {    \yii\base\Event::on(        \yii\db\BaseActiveRecord::className(),         \yii\db\BaseActiveRecord::EVENT_AFTER_UPDATE,         ['backend\components\AdminLog', 'write']    );},

3、mysql 中创建admin_log表

CREATE TABLE `admin_log` (  `id` int(10) NOT NULL AUTO_INCREMENT,  `route` varchar(255) NOT NULL DEFAULT '',  `description` text,  `created_at` int(10) NOT NULL,  `user_id` int(10) NOT NULL DEFAULT '0',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

4、用gii生成AdminLog模型:命名空间为common\models

来源:

转载地址:http://moxga.baihongyu.com/

你可能感兴趣的文章
MessageDigest简单介绍
查看>>
webpack window 使用sass来编译css样式
查看>>
D3 & Data Visualization in Ext JS
查看>>
java通过UUID生成16位唯一订单号
查看>>
001-web基本程序搭建
查看>>
函数指针和指针函数
查看>>
借力AI 极验如何构建下一代业务安全?
查看>>
用Python制作迷宫GIF
查看>>
从事互联网行业,怎样才能快速掌握一门编程语言呢?
查看>>
React native 第三方组件 React native swiper
查看>>
接口幂等设计
查看>>
移动端的自适应方案—REM
查看>>
你真的懂volatile吗
查看>>
Android 编译时注解-提升
查看>>
说说 Spring AOP 中 @Aspect 的高级用法
查看>>
Workbox CLI中文版
查看>>
贝聊亿级数据库分库分表实践
查看>>
同时连接gitlab和github
查看>>
vuex源码分析
查看>>
tornado+datatables分页
查看>>