News

Raw Query Output With Bindings is Coming to Laravel 10

Published
Raw Query Output With Bindings is Coming to Laravel 10 image

Laravel 10 is getting a long-awaited feature to get the raw SQL query, including bindings 🥳:

This feature will be part of the next tagged v10.x release, which usually happens weekly:

// Using the new `toRawSql()` method
User::where('email', 'foo@example.com')->toRawSql();
// "SELECT * FROM users WHERE email = 'foo@example.com'"

There is some prior art before toRawSql()—various developer tools (i.e., Laravel Debugbar) give you queries, and there's a dd() method you can use as well:

// Using the dd() method
User::where('email', 'foo@example.com')->dd();
// "SELECT * FROM users WHERE email = ?"
// [
// 0 => "foo@example.com"
// ]

The dd() feature is nice, and gives you everything you need. However, you have to manually copy/paste/insert the bindings if you want to re-run, explain, and otherwise debug the query. The new toRawSql() can help with that need to copy the query and run it directly in a database client.

Thanks to Tobias Petry, who contributed to this PR; he has also been contributing important database updates to Laravel. For example, he recently contributed escaping functionality within grammar which was released with Laravel 10.13.

For more details on the upcoming toRawSql() method, check out Pull Request #47507—this is a fantastic quality-of-life feature!

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Lerd: A Free, Open Source Herd Alternative for Linux and macOS image

Lerd: A Free, Open Source Herd Alternative for Linux and macOS

Read article
Let's Encrypt HTTPS on an IP Address With FrankenPHP image

Let's Encrypt HTTPS on an IP Address With FrankenPHP

Read article
Laravel Chores: Resumable Data Operations and Cleanups image

Laravel Chores: Resumable Data Operations and Cleanups

Read article
NativePHP v4: Build Native iOS and Android UI in Blade image

NativePHP v4: Build Native iOS and Android UI in Blade

Read article
Laravel Lock: Distributed Locks for Models and Routes image

Laravel Lock: Distributed Locks for Models and Routes

Read article
Laravel Image Responses: Serve Resized Images From Routes image

Laravel Image Responses: Serve Resized Images From Routes

Read article