Laravel で Vite を使用している場合、dump() や dd() がうまく表示されない
ことがあります。
これは、Vite が JavaScript ベースの開発サーバーを使用しているため、
PHP 側の出力が正しく表示されないことが原因です。
解決策
1. dump() の代わりに dd() を使う
Vite 開発サーバーを使っていると、dump() の出力が正しく表示されない場合があります。dd()(dump and die)を使えば、処理を停止してデバッグ情報を確実に確認できます。
phpdd($data); // これならブラウザに強制表示される
2. Laravel の logger() を使う
ブラウザで dump() が見えない場合、logger() を使ってログに出力するのも有効です。
phplogger($data); // storage/logs/laravel.log に出力
または Log::info() を使う方法もあります。
phpuse Illuminate\Support\Facades\Log;
Log::info('デバッグ情報', ['data' => $data]);
ログは storage/logs/laravel.log に保存されるので、以下のコマンドで
リアルタイムに確認できます。
shtail -f storage/logs/laravel.log
3. dump() を @php ブロック内で使う
Blade テンプレートの中で dump() を使う場合、@php ブロックで明示的に囲むと動作する
ことがあります。
blade@php dump($data) @endphp
それでも表示されない場合は、Vite のキャッシュやコンパイル済みファイルが
影響している可能性があるため、以下のコマンドを実行してみてください。
shphp artisan view:clear
php artisan cache:clear
php artisan config:clear
4. Vite を再起動する
Vite の開発サーバーが古い状態で動作していると、PHP 側の変更が反映されな
いことがあります。
sh# Vite の開発サーバーを停止
Ctrl + C
# 再起動
npm run dev
また、Laravel のサーバーも再起動すると問題が解決することがあります。
shphp artisan serve
5. Xdebug を使ってデバッグ
もし dump() が効かない場合、Xdebug を導入すると便利です。
特に VS Code などのエディタを使ってデバッグすると、
より詳細な情報が確認できます。
Xdebug のインストール
sh# macOS(Homebrew を使用)
brew install php@8.x-xdebug
# Ubuntu(apt を使用)
sudo apt install php-xdebug
インストール後、phpinfo() で Xdebug が有効になっているか確認してください。
phpphpinfo();
6. barryvdh/laravel-debugbar を使う
Vite を使っていると dump() が見えづらいですが、laravel-debugbar を使うと
デバッグしやすくなります。
shcomposer require barryvdh/laravel-debugbar --dev
インストール後、ブラウザのデバッグバーで dump() の結果が確認できます。
まとめ
| 方法 | 対策内容 |
|---|---|
dd($data); | 確実にデバッグ出力を確認 |
logger($data); | ログに出力して確認 |
@php dump($data) @endphp | Blade 内で使う場合 |
php artisan view:clear | キャッシュクリア |
npm run dev | Vite の再起動 |
Xdebug を導入 | より詳細なデバッグ |
laravel-debugbar を導入 | デバッグ情報を見やすく |
以上の確認でもまだdump()が表示されない場合、非同期状態で使ってませんか?
非同期(AJAX / Fetch API)で dump() を表示させる方法
Laravel で非同期リクエスト(AJAX / Fetch API / Axios など)を使用している場合、
通常の dump() はブラウザに直接表示されず、JSON や HTML のレスポンスに
埋もれてしまいます。
これを解決する方法をいくつか紹介します。
1. dd() を使って強制停止
非同期リクエストで dump() だけだと見えないことがありますが、dd() を使えばレスポンスとして確実に確認できます。
phppublic function someMethod(Request $request) {
$data = ['message' => 'Hello, Laravel!'];
dd($data); // 非同期リクエストでもブラウザの開発ツールで確認可能
}
確認方法:
- Chrome の開発者ツール(F12)を開く
Networkタブでリクエストを確認Responseにdd()の出力が表示される
2. dump() の内容を response()->json() で返す
dump() は HTML のデバッグ用ですが、非同期リクエストでは JSON レスポンスに
含めるのがベストです。
phppublic function someMethod(Request $request) {スクリプトからの出力をせず、内部バッファに保存
$data = ['message' => 'Hello, Laravel!'];
// dump() の結果を取得してレスポンスに含める
ob_start(); //
dump($data);
$dumpOutput = ob_get_clean();//内部バッファクリア
return response()->json([
'data' => $data,
'dump' => $dumpOutput,
]);
}
確認方法:
- フロントエンド(JavaScript)で
console.log()で出力する
jsfetch('/some-url')
.then(response => response.json())
.then(data => console.log(data));
3. Log::debug() を使ってログに出力
非同期リクエストでは dump() よりもログに記録するのが便利です。
phpuse Illuminate\Support\Facades\Log;
public function someMethod(Request $request) {
$data = ['message' => 'Hello, Laravel!'];
// デバッグログに出力
Log::debug('Debug data:', $data);
return response()->json($data);
}
ログをリアルタイムで確認
shtail -f storage/logs/laravel.log
4. laravel-debugbar を使ってデバッグ
もし dump() を見やすくしたいなら、laravel-debugbar を導入するのもおすすめです。
shcomposer require barryvdh/laravel-debugbar --dev
インストール後、非同期リクエストでも Debugbar にデータが表示されます。
まとめ
| 方法 | 説明 |
|---|---|
dd($data); | 強制停止してブラウザの開発ツールで確認 |
response()->json([...]) | dump() の結果を JSON レスポンスに含める |
Log::debug($data); | ログファイルに出力して確認 |
laravel-debugbar | 開発ツールでデバッグ情報を可視化 |
どの方法でも dump() の出力が見えない場合、
- リクエストの URL やメソッドを確認
- ブラウザの開発者ツール(F12)で
Networkをチェック - Laravel のエラーログ(
storage/logs/laravel.log)を確認
これらを試せば、非同期リクエストでも dump() の内容を確認できるはずです!

