之前有遇到需要打印出执行SQL的问题,在Laravel的ORM关联模型中 之前都是用 builder
对象执行 toSql()
方法 或者写错一个字段名 这样会报错显示出SQL(满脑子的骚操作…) 感觉不能在懒下去了 还是要回归正途使用 Laravel-Debugbar 然后安装又遇到了幺蛾子
打印Laravel执行SQL
一般都是修改 app/Provider/AppServiceProvider
文件 在 boot()
方法中加入代码 记得在上面 引入 use DB;
比如下面
|
|
今天还看到一种写法
|
|
这个会记录下Laravel执行过程中所有执行过的SQL语句 写入到 storage\logs\xxxx-xx-xx_query.log
中 也挺方便的
安装Laravel-Debugbar
Laravel-debugbar是一个laravel调试神器 Github 地址在 https://github.com/barryvdh/laravel-debugbar 跟着步骤一步步安装就好了
安装
使用 Composer 直接运行 composer require barryvdh/laravel-debugbar --dev
然后在 .env
配置文件中设置 APP_DEBUG=true
即打开 debug 模式
配置
编辑 config/app.php
文件 在中 providers
数组下 增加 Barryvdh\Debugbar\ServiceProvider::class,
注册服务提供者
同时在该文件的 aliases
数组下 增加 'Debugbar' => Barryvdh\Debugbar\Facade::class,
给门面起个别名 方便后续使用
然后执行 php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
它会自动帮你在 config
目录下 生成 debugbar.php
配置文件 其主要配置都在这个文件里了
测试
上面安装完了后就可以测试下了,访问你的项目 如果在浏览器看到下面就成功了
注意
debugbar 是基于前端内容显示的 所以你的访问路由要有页面 内容输出,不要在你的代码中间加入 exit();
, dd();
等中断操作 不然他是显示不了的。我测试的时候就加了 dd()
中断输出,然后一直没有debugbar内容显示 郁闷了好久!!! 更多详细文档看官网吧 http://phpdebugbar.com/docs/readme.html#php-debug-bar