phpsqllaraveleloquentlaravel-query-builder

How do I get the query builder to output its raw SQL query as a string?


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?


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.)