guanguans/laravel-dump-sql – 在 laravel 中轻松容易的输入残缺的 sql 语句。
laravel 中查问构造方法失去的 sql 语句没有绑定条件参数,相似于
select * from users where id= ?
。这个扩大包可辅助你获取残缺的 sql 语句。
User::query()->where('id', 1)->dd(); // 自带办法 `dd` 的打印后果
User::query()->where('id', 1)->ddSql(); // 新增办法 `ddSql` 的打印后果
环境要求
- laravel || lumen >= 5.5
装置
$ composer require guanguans/laravel-dump-sql -v
lumen 中配置 (laravel 中请疏忽)
将上面代码增加到 bootstrap/app.php
文件中的 Register Service Providers
局部
$app->register(\Guanguans\LaravelDumpSql\ServiceProvider::class);
应用
装置配置结束后数据库查问构造方法会新增以下几个办法:
- toRawSql() – 获取残缺的 sql
- dumpSql() – 打印残缺的 sql
- ddSql() – 打印残缺的 sql 并且退出
- logListenedSql() – 记录被监听到的 sql
- dumpListenedSql() – 打印被监听到的 sql
- ddListenedSql() – 打印被监听到的 sql 并且退出
toRawSql() – 获取残缺的 sql
$sql = User::query()->where('id', 1)->toRawSql();
dd($sql);
"select * from `xb_users` where `id` = 1"
dumpSql() – 打印残缺的 sql
User::query()->where('id', 1)->dumpSql();
User::query()->where('id', 2)->dumpSql();
"select * from `xb_users` where `id` = 1"
"select * from `xb_users` where `id` = 2"
ddSql() – 打印残缺的 sql 并且退出
User::query()->where('id', 1)->ddSql();
User::query()->where('id', 2)->ddSql();
"select * from `xb_users` where `id` = 1"
logListenedSql() – 记录被监听到的 sql
User::query()->where('id', 1)->logListenedSql()->first();
User::query()->where('id', 2)->first();
# 日志中
[Laravel] [39.97ms] select * from `xb_users` where `id` = '1' limit 1 | GET: /
[Laravel] [39.93ms] select * from `xb_users` where `id` = '2' limit 1 | GET: /
dumpListenedSql() – 打印被监听到的 sql
User::query()->where('id', 1)->dumpListenedSql()->first();
User::query()->where('id', 2)->first();
[Laravel] [39.97ms] select * from `xb_users` where `id` = '1' limit 1 | GET: /
[Laravel] [39.93ms] select * from `xb_users` where `id` = '2' limit 1 | GET: /
ddListenedSql() – 打印被监听到的 sql 并且退出
User::query()->where('id', 1)->ddListenedSql()->first();
User::query()->where('id', 2)->first();
[Laravel] [39.97ms] select * from `xb_users` where `id` = '1' limit 1 | GET: /
参考我的项目
- https://github.com/overtrue/laravel-query-logger