Laravel 中轻松容易的输出完整的 SQL 语句
laravel 中自带的查询构建方法
toSql
得到的 sql 语句并未绑定条件参数,类似于这样select * from users where id = ?
,所以写了个扩展包 laravel-dump-sql ,可以获取完整的 sql 语句。
源码
安装
$ composer require guanguans/laravel-dump-sql -v
发布服务
$ php artisan vendor:publish --provider="Guanguans\\LaravelDumpSql\\ServiceProvider"
使用
安装成功后查询构建器会新增
toRawSql
、dumpSql
、ddSql
三个方法
// 获取 SQL
User::where('id', 1)->toRawSql();
DB::table('user')->where('id', 1)->toRawSql();
// 打印 SQL
User::where('id', 1)->dumpSql();
DB::table('user')->where('id', 1)->dumpSql();
// 打印 SQL 并退出
User::where('id', 1)->ddSql();
DB::table('user')->where('id', 1)->ddSql();
自定义方法名称
发布配置文件
$ php artisan vendor:publish --tag=laravel-dump-sql
config/dumpsql.php
文件中配置方法名称既可
<?php
return [
/*
* Get sql statement.
*/
'to_raw_sql' => 'Your favorite method name',
/*
* Print SQL statements.
*/
'dump_sql' => 'Your favorite method name',
/*
* Print SQL statements and exit.
*/
'dd_sql' => 'Your favorite method name',
];
本作品采用《CC 协议》,转载必须注明作者和本文链接
No practice, no gain in one's wit.
我的 Gitub
laravel自带方法额。toSql()
是啊,可以toSql啊。。这个包干啥用
自带的
toSql()
dd()
都可以打印 sql 语句@wanghan
@zhougongjin
自带的
toSql
新增的
toRawSql
@xujinhuan
自带的
dd
新增的
ddSql
按装不了??
@www295686243
现在可以了,尝试重新安装
@guanguans 啊,是这样,确实方便很多OvO
发布服务不行?
我貌似只能去列表里选tag发布
但好像用不了?我姿势不对?
@www295686243
laravel5.5 以上不用发布服务,安装完后直接使用就可以了。
输错一个字符就可以看到完整SQL了 :joy:
@zhumengyang 机智 :
@guanguans 这种方式基本不限框架
@crazy
我知道超哥的这个包,当然还有很多其他以 log 形式记录 sql 的包。
可以,支持!
官方包
telescope
更香, 不过还是支持造轮子!@Gabrielodbo
telescope
那就香多了。