How do I get the query builder to output its raw SQL query as a string?
eloquent, laravel, laravel-query-builder, php, sql
Solution
To output to the screen the last queries ran you can use this:
\DB::enableQueryLog(); // Enable query log
// Your Eloquent query executed by using get()
dd(\DB::getQueryLog()); // Show results of log
I believe the most recent queries will be at the bottom of the array.
You will have something like that:
array(1) {
[0]=>
array(3) {
["query"]=>
string(21) "select * from "users""
["bindings"]=>
array(0) {
}
["time"]=>
string(4) "0.92"
}
}
(Thanks to Joshua's comment below.)
Problem
Given the following code: ``` DB::table('users')->get(); ``` I want to get the raw SQL query string that the database query builder above will generate. In this example, it would be `SELECT * FROM users`. How do I do this?