How Do I Get the Query Builder to Output Its Raw SQL Query as a String?

meiryo picture meiryo · Aug 14, 2013 · Viewed 704.5k times · Source

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?

Answer

Steven Mercatante picture Steven Mercatante · Dec 4, 2013

Use the toSql() method on a QueryBuilder instance.

DB::table('users')->toSql() would return:

select * from `users`

This is easier than wiring up an event listener, and also lets you check what the query will actually look like at any point while you're building it.