LaravelSQLデバッグ、Telescope の導入

目次

そもそもLaravelではどのようにDB操作しているのかを確認

LaravelでのDB操作は、書いたコードがそのままDBに届くわけではなく、裏側で翻訳されてから届きます。

Eloquentクラスの機能を使う
User::find(1)
「SQL」ではなく「PHPのクラス」でDB操作をコーディング

↓

(裏側)クエリビルダーでSQL文を組み立てる
select * from users where id = 1 (という文字列を作る)

↓

PDO
作られたSQL文を持って、実際にデータベースへ接続・実行する。
PHPに標準装備されている「データベース接続機能」でLaravelはこのPDOを使ってMySQLと通信してます

Eloquent(エロクエント)とは

Eloquent(エロクエント)クラスとは、 「データベースのテーブルを、PHPのクラス(モデル)として扱うための機能」です。

Laravelでデータベースを操作する際、最もよく使われる便利な仕組み(ORM)です。

storage\logs\laravel.logについて

.envLOG_CHANNEL=daily にしておくと、管理が楽になります。

# 変更前(デフォルトでconfig/logging.phpの設定が使用される)
LOG_CHANNEL=stack

# 変更後(おすすめ)
LOG_CHANNEL=daily

Telescope の導入

composer require laravel/telescope --dev

Telescope の画面を使えるようにする

php artisan telescope:install

実行すると、自動的に

config/telescope.php

マイグレーションファイル などが追加されます。

そのあと続けて マイグレーションを実行

./vendor/bin/sail artisan migrate

http://localhost/telescopeでブラウザで確認できる

https://github.com/idw-coder/laravel-rds/blob/main/README.md#telescope-%E3%81%AE%E5%B0%8E%E5%85%A5

参考記事

Dexall公式テックブログ
Laravel SQL付与を確認する7つの実践的な方法 - 現場で使える完全ガイド 目次 Laravelでの書き込みビルダの基礎知識 書き込みビルダとRaw SQLの違いを理解する Laravelの書き込みログの仕組みを知る SQL書き込みを確認するための7つの方法 toSql(...
目次