この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:7
ページ更新者:guest
更新日時:2026-06-11 07:10:02

タイトル: エラー一覧
SEOタイトル: Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー

この記事の要点
  • Laravel でよく遭遇するエラーの入口ページ
  • 頻出は 500 系 / Blade コンパイル / DB 接続 / ルーティングの 4 領域
  • php artisan tinkerstorage/logs/laravel.log が最初に見るべき場所
  • .env 変更後は必ず php artisan config:clear + cache:clear
  • 本番では APP_DEBUG=false — エラー詳細が画面に出ないので必ずログを確認

Laravel エラー対処の起点

このページは、Laravel でよく遭遇するエラーと対処の入口です。エラーメッセージの意味・起きやすい原因・まず確認したい設定やコードのポイントを整理しています。

切り分けの早道

段階確認するコマンド / ファイル目的
1storage/logs/laravel.log の末尾500 系の本物のスタックトレースを確認
2.env ファイルの内容APP_ENV / DB_HOST / APP_KEY が正しいか
3php artisan config:clearキャッシュされた古い設定をクリア
4php artisan cache:clearアプリケーションキャッシュをクリア
5php artisan route:listルートが期待通り定義されているか
6php artisan tinkerモデル / 設定値を対話的にテスト
7composer dump-autoloadクラスロード不能エラー時

500 Internal Server Error

本番で APP_DEBUG=false の場合、画面には「Whoops, looks like something went wrong.」とだけ出ます。詳細はログにあります:

# 最新エラーの確認(tail で監視)
tail -f storage/logs/laravel.log

# 本日のログだけ見る場合
grep "$(date +%Y-%m-%d)" storage/logs/laravel.log | less

# よくある原因:
#  - PHP メモリ不足: php.ini の memory_limit
#  - permission denied: storage/ や bootstrap/cache/ の書き込み権限
#  - .env の APP_KEY 未設定 → php artisan key:generate
#  - DB 接続失敗(次のセクション)

DB 接続エラー

エラー原因
SQLSTATE[HY000] [2002] Connection refusedDB サーバ未起動 / DB_HOST 違い
SQLSTATE[HY000] [1045] Access denied for userDB_USERNAME / DB_PASSWORD 違い
SQLSTATE[HY000] [1049] Unknown databaseDB_DATABASE の DB が未作成
SQLSTATE[42S02] Base table or view not foundマイグレーション未実行 → php artisan migrate
SQLSTATE[42000] Syntax errorEloquent クエリの生 SQL に typo

Blade コンパイルエラー

  • "Undefined variable: xxx": コントローラから view に変数を渡し忘れ → compact('xxx') または ['xxx' => $xxx]
  • "Class 'App\Models\Xxx' not found": モデルの use 文不足、または composer dump-autoload
  • "Trying to access array offset on value of type null": $obj->prop->sub で中間が null → $obj?->prop?->sub ?? '' (Null safe operator)
  • "@if が閉じていない": @endif 漏れ。Blade コメント {{-- --}} 内に @if が混入していないか
  • キャッシュが原因: php artisan view:clear で Blade コンパイル済みファイルをクリア

ルーティングエラー

  • "Route [xxx] not defined": route('xxx') で名前未定義 → routes/web.php->name('xxx') を確認
  • "Method [POST] not allowed": ルートが GET のみ定義されている → Route::post 追加
  • "419 Page Expired": CSRF トークン不一致 → form に @csrf、Ajax は X-CSRF-TOKEN ヘッダ
  • "404 Not Found" だが URL は合っているはず: php artisan route:cache 後にルートを変更して反映されていない → php artisan route:clear

環境変数 (.env) 関連

  • .env 変更後に反映されない: php artisan config:clear 必須
  • キャッシュ環境で動作不安定: php artisan config:cache を本番でだけ使う
  • "Encryption key (APP_KEY) not specified": php artisan key:generate で生成
  • ".env に書いた変数を config() で取れない": config/xxx.php 経由が原則。env() は config 内でだけ使う

キャッシュ系で何かおかしいときの「全部消す」コマンド

php artisan config:clear      # 設定キャッシュ
php artisan cache:clear       # アプリケーションキャッシュ
php artisan view:clear        # Blade コンパイル済み
php artisan route:clear       # ルートキャッシュ
php artisan event:clear       # イベントキャッシュ(Laravel 6+)
composer dump-autoload        # クラスローダ更新

# または artisan optimize の逆操作
php artisan optimize:clear

関連情報

  • ログレベル: .envLOG_LEVEL=debug で詳細ログ出力(本番は error 推奨)
  • Telescope: 開発時に laravel/telescope を入れると、リクエスト・クエリ・例外を Web UI で確認できる
  • Ignition: デフォルトのエラー画面。スタックトレースと変数値を見ながらデバッグ可能
  • Bagisto / Backpack / Filament 等の管理画面パッケージ: 独自のエラーパターンを持つので個別ドキュメントを参照