こちらは Laravel Advent Calendar 2022 21日目の記事です。
遅ばせながらクリスマスイブの本日に投稿します!
検証環境
Laravel v8.83.8
$query->dd()は良いぞ
「Laravel SQL 確認」で検索すると下記の方法をよく見かけますが、
$query = User::where('id', 1);
dd($query->toSql(), $query->getBindings());
同じ処理を$query
から直接実行できます。
$query = User::where('id', 1);
$query->dd();
// 出力結果
// "select * from `users` where `id` = ?"
// array:1 [▼
// 0 => 1
// ]
公式サイトにも記述されています。
解説
dd()
はクエリビルダのメソッドです。
Modelが作成するEloquentのビルダはクエリビルダのインスタンスを保有しており、そこからdd()
を実行しています。
// in vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php
public function dd()
{
dd($this->toSql(), $this->getBindings());
}
気になる方はコアファイルを読んでみてください。
$query->dump()もできるよ
処理を止めたくない場合はdump()
も利用できます。
$query = User::where('id', 1);
$query->dump();
// 出力結果
// "select * from `users` where `id` = ?"
// array:1 [▼
// 0 => 1
// ]
// in vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php
public function dump()
{
dump($this->toSql(), $this->getBindings());
return $this;
}
どのバージョンから利用できるの?
v5.8
より利用可能です。
v5.8のリリースノートに記述が無いため、当時のプルリクを参考に掲載します。
使うと開発効率がちょっぴり向上しますね。
皆さま素敵なクリスマスを!