laravel 中自帶的查詢構建方法
toSql
獲得的 sql 語句並未綁定條件參數,相似於這樣select * from
userswhere
id= ?
,因此寫了個擴展包 laravel-dump-sql ,能夠獲取完整的 sql 語句。php
$ composer require guanguans/laravel-dump-sql -v 複製代碼
$ php artisan vendor:publish --provider="Guanguans\\LaravelDumpSql\\ServiceProvider" 複製代碼
安裝成功後查詢構建器會新增
toRawSql
、dumpSql
、ddSql
三個方法laravel
// 獲取 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', ]; 複製代碼