重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关Laravel中SQL Debug的使用技巧,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联公司2013年成立,先为嘉禾等服务建站,嘉禾等地企业,进行企业商务咨询服务。为嘉禾企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
针对 Laravel 应用的优化远远不止消除 N+1 问题那么简单。合理的使用 Laravel DebugBar 可以对模型内存的使用以及 SQL 查询时效等问题给出合理的解决方案。
可能你并不喜欢使用 Laravel DebugBar,或者基于某些原因而不能使用(比如基于接口应用的开发),那么 Database Listener 将会是个不错的方法,他将记录你的 SQL 查询到日志。
这在生产环境与测试环境同样适用,你可以很简单的通过 env 或者 config 控制它的启用与否。
如何使用:
将此添加到你的 AppServiceProvider 的启动方法中
if (env("SQL_DEBUG_LOG")) { DB::listen(function ($query) { Log::debug("DB: " . $query->sql . "[". implode(",",$query->bindings). "]"); }); }
如果你在生产环境中使用它的话,我建议你可以把 config 中的配置信息放到 env 中,然后你还可以(并且应该)缓存这个 config 信息
我发现另一个问题是假如 sql 调用本身失败,会抛出一个异常,在成功调用前其监听的 DB::listen 并不会进行记录,并且该异常会在返回到监听之前发生。
关于“Laravel中SQL Debug的使用技巧”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。