在 Laravel 中,你可以使用 DB::getQueryLog() 方法来调试复杂的 SQL 语句。这个方法会返回查询日志,包括所有已执行的 SQL 语句、绑定的参数和执行时间。以下是一个示例:
首先,在你的代码中启用查询日志:\DB::connection()->enableQueryLog();然后,执行你的复杂 SQL 语句。例如:$users = \DB::table('users') ->join('contacts', 'users.id', '=', 'contacts.user_id') ->join('orders', 'users.id', '=', 'orders.user_id') ->select('users.*', 'contacts.phone', 'orders.price') ->get();最后,获取查询日志并打印 SQL 语句:$queryLog = \DB::getQueryLog();$lastQuery = end($queryLog);// 打印 SQL 语句print_r($lastQuery);这将输出类似以下内容:
Array( [query] => select `users`.*, `contacts`.`phone`, `orders`.`price` from `users` inner join `contacts` on `users`.`id` = `contacts`.`user_id` inner join `orders` on `users`.`id` = `orders`.`user_id` [bindings] => Array ( ) [time] => 0.42)你可以根据需要修改此代码以适应你的调试需求。例如,你可以在循环中执行多个查询并打印它们的日志。


