关于php:在-laravel-中轻松容易的输出完整的-sql-语句

39次阅读

共计 1767 个字符,预计需要花费 5 分钟才能阅读完成。

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

正文完
 0