多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 基于行为的日记录 > 首先要了解行为的特性,另外要熟悉标签位(钩子)的触发时间。 ## 创建行为 > 了解行为中入口方法`run`的执行条件。 ### 1\. 创建行为目录`app\admin\behavior` ### 2\. 创建行为类`app\admin\behavior\Logs.php` > 了解标签位的运用,在这里咱们先使用`action_begin`标签位 ~~~ <?php /** namespace app\admin\behavior; use app\admin\model\Logs as LogsModel; class Logs { public function actionBegin(){ //记录日志 //1.获取日志信息 $data['url']=request()->controller()."/".request()->action(); $uid=session("uid","","admin"); $data['operator']=$uid?$uid:0; $description=db("auth_rule")->where("name",$data['url'])->value("title"); $data['description']=$description?$description:"未知"; $data['operate_time']=time(); $data['operate_ip']=request()->ip(); LogsModel::create($data); } } ~~~ > 在这里要注意一点,就是日志记录中的描述信息,这在这里描述信息直接从权限表中获取。所以日志中节点的规是一定要和权限中的规则一致。 ### 3\. 行为绑定 > 在这在咱们我用`tags.php`文件绑定, 创建`app\admin\tags.php` ~~~ <?php return [ 'action_begin'=>[ 'app\\admin\\behavior\\Logs', ], ]; ~~~ > 到这里,就以实现操作日记的记录了。只要管理 在后台执行任 操作都会记 录到`yf_logs`表中。 关于后 的日志的列表显示,在这里自行处理,最 的 效果如下: ![](https://box.kancloud.cn/45d45e14e86b677dfe10f1fc80410630_1601x605.png)