laravel 12有没有什么方法可以让某些片段的查询不触发QueryExecuted事件

AI摘要
该提问涉及在Laravel框架中,如何通过DatabaseQueryListener监听QueryExecuted事件记录SQL日志,并寻求在特定代码部分禁用此监听以避免记录特定查询的方法。提问者使用了Laravel ORM,核心需求是进行日志记录的精细化控制。这是一个关于Laravel数据库操作与事件监听的技术实现问题。

我的项目是laravel12,我通过DatabaseQueryListener 监听 QueryExecuted事件来记录SQL日志,我希望某些部分的代码不触发这个事件(目的是不记录这些查询的日志), 我的查询使用的是LaravelORM,有什么办法吗?

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

你在 DatabaseQueryListener 增加一个 public static $shouldLog = true; 在那段代码开始设置 shouldLog = false,结束再把 shouldLog 改为 true

2周前 评论
老年人 (楼主) 2周前
讨论数量: 4

增加一个上下文设置呗,绑定到app上面,如果有这个参数则不记录sql,否则记录

2周前 评论

app('events')->forget(QueryExecuted::class);

2周前 评论

你在 DatabaseQueryListener 增加一个 public static $shouldLog = true; 在那段代码开始设置 shouldLog = false,结束再把 shouldLog 改为 true

2周前 评论
老年人 (楼主) 2周前

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