📜  laravel 获取查询输出 - PHP (1)

📅  最后修改于: 2023-12-03 14:43:49.554000             🧑  作者: Mango

Laravel 获取查询输出 - PHP

在 Laravel 中,获取查询输出是一个非常常见的操作。查询输出可以帮助我们检查我们的代码,确保它在正确的地方运行。下面是如何在 Laravel 中获取查询输出的方法。

获取查询输出

可以使用 toSql() 方法获取查询语句的 SQL 字符串,使用 getBindings() 方法获取查询的绑定参数,使用 dd() 函数将它们结合在一起打印出来。例如:

$users = DB::table('users')
            ->where('name', 'John')
            ->orWhere('name', 'Jane')
            ->get();

dd($users->toSql(), $users->getBindings());

这将输出查询语句的 SQL 字符串和绑定的参数。结果如下:

"select * from `users` where `name` = ? or `name` = ?"
array:2 [
  0 => "John"
  1 => "Jane"
]
查询构建器事件监听器

我们也可以使用查询构建器事件监听器来获取查询输出。例如,可以使用 listen() 方法监听 Illuminate\Database\Events\QueryExecuted 事件:

DB::listen(function ($event) {
    dump($event->sql);
    dump($event->bindings);
    dump($event->time);
});

这将输出查询语句的 SQL 字符串、绑定的参数和查询所需的时间。结果如下:

"select * from `users` where `name` = ? or `name` = ?"
array:2 [
  0 => "John"
  1 => "Jane"
]
0.57
小结

以上是如何在 Laravel 中获取查询输出的方法。无论您是使用哪种方法,获取查询输出是在调试和优化 Laravel 应用程序时非常有用的工具。