Laravel 数据库:输出 SQL 语句
在 Laravel 中,你可以通过监听查询事件来输出 SQL 语句。这可以在你的应用程序的任何位置完成,但通常在一个服务提供者中设置这样的监听器是个好主意。
以下是如何设置监听器并打印所有 SQL 查询语句的示例:
- 创建一个新的服务提供者(例如,
AppServiceProvider.php
)。 - 在服务提供者的
boot
方法中添加监听器。
use Illuminate\Support\Facades\DB;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
if (config('app.debug')) {
DB::listen(function ($query) {
\Log::info($query->sql, $query->bindings, $query->time);
});
}
}
public function register()
{
//
}
}
- 确保你的服务提供者在
config/app.php
文件的providers
数组中注册。
当你的应用程序运行在调试模式(DEBUG = true)时,每当数据库查询执行时,相应的 SQL 语句和绑定参数将被记录到日志中。你可以通过修改日志配置来将日志输出到其他位置,例如单独的日志文件或者是存储在数据库中。
评论已关闭