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', ]; 复制代码