laravel 中自帶的查詢構建方法
toSql
得到的 sql 語句並未綁定條件參數,類似於這樣select * from
userswhere
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' => 'toRawSql',
/*
* Print SQL statements.
*/
'dump_sql' => 'dumpSql',
/*
* Print SQL statements and exit.
*/
'dd_sql' => 'ddSql',
];