大神求助?

项目需要DB::listen()全局监听sql,但某些接口我要阻止监听,怎么实现,求助

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 12

有人吗?快来人

5年前 评论
LDL1023

为啥要阻塞监听?

5年前 评论

@LDL1023 项目做的监听有日志输出sql语句,而我有些接口是不希望输出日志的,数据量过多

5年前 评论
LDL1023

@limingcun
可以这样试试,

$flag = app('request')->input('sql');
 if ($flag) {
     DB::listen(function ($query) {
     $sql = $query->sql;

                    ...

              Log::debug($sql);
       });
}

在请求的 url 带上 sql=1 就可以输出 sql log

5年前 评论

@LDL1023 你理解错我的意思了,我这里已经做了全局监听,我现在需要做的是某些接口不触发这个监听接口,防止DB监听

file

5年前 评论
LDL1023

@limingcun 换个思路,你想要看 log 的时候,才触发监听

5年前 评论

@LDL1023 :sweat_smile:我几乎全部都是是需要看的,只有个别不看而已

5年前 评论
LDL1023

@limingcun 那就再反过来就好拉..

5年前 评论

@LDL1023 sql接口太多了,那样做不科学

5年前 评论

@LDL1023 怎么反过来,在不屏蔽全局监听的情况下

5年前 评论
LDL1023

@limingcun

$flag = app('request')->input('sql');
 if (  !   $flag) {

}
5年前 评论

@LDL1023 这样是不行的,只要有DB事件,都会触发全局

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!