Avatar ·

如何从 Laravel 的 Query Builder 中获取原始 SQL 查询字符串?

大家好。我是 Laravel 新手,正在尝试调试一个使用 Query Builder 的复杂查询。我需要查看 Eloquent 生成的 SQL 查询,以检查 JOIN 和 WHERE 是否正确构建。 问题在于,我使用 `DB::table('users')->select(...)->where(...)->get()` 时一切正常,但我想在执行前查看最终的 SQL,以确保其正确性。例如,我有如下代码: ```php $users = DB::table('users') ->join('orders', 'users.id', '=', 'orders.user_id') ->where('users.active', 1) ->whereIn('orders.status', ['pending', 'processing']) ->orderBy('users.created_at', 'desc') ->get(); ``` 我尝试过使用 `->toSql()`,但它返回的查询带有占位符 `?` 而非实际值(例如 `WHERE users.active = ?`)。而我需要的是已替换好值的完整 SQL,以便复制到 phpMyAdmin 或 HeidiSQL 中执行验证。 请问是否有方法可以获取到这样的 SQL?