📅  最后修改于: 2023-12-03 14:43:49.554000             🧑  作者: Mango
在 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 应用程序时非常有用的工具。