Laravel showsql 包, 将 SQL 查询发送到你指定的调试工具
Laravel showsql 包可以将模型的 SQL 查询语句输出到你钟爱的调试工具或浏览器中
Menu::whereHas('status')
->showSql()
->get();
当你调用 showSql()
方法时,生成的 SQL 查询语句会被发送到 Laravel Telescope、Laravel Log、Ray、Clockwork、 Laravel Debugbar 或者网页浏览器中。你可以配置让其发送 SQL 查询到多个位置。
这个包非常有用。你可以锁定特定的查询日记而无需梳理该请求下单所有查询语句。
安装
composer require dietercoopman/laravel-showsql --dev
默认配置将输出到 ray、clockwork 和 laravel debugbar。如果你想修改输出位置,将配置文件 publish:
php artisan vendor:publish --tag=showsql-config
配置项如下:
return [
'to' => [
'telescope' => false,
'ray' => true,
'clockwork' => true,
'debugbar' => true,
'log' => false,
'browser' => false,
]
];
用例
# With the Eloquent Builder
Menu::showSql()->get();
Menu::whereId(1)->showSql()->get();
Menu::whereHas('status')->showSql()->get();
# With the Query Builder
DB::table('menus')->where('id', '=', 10)->showSql()->get();
DB::table('menus')->join('statuses', 'statuses.id', '=', 'menus.status_id')
->showSql()
->get();
# With a callback
$callback = function(string $sql){
Log::info($sql);
};
DB::table('products')->where('id', '=', 1)->showSql($callback)->get();