Laravelを使っていると、開発中にエラーや不具合にぶつかることがあります。ここでは、よくある問題とその解決方法をわかりやすく紹介します。
1. Class “App\Http\Controllers\XxxController” not found
原因
コントローラーが見つからないときは、名前空間のミスやファイルの配置ミスが原因のことが多いです。
解決策
- app/Http/Controllers/ にファイルがあるか確認。
- namespace App\Http\Controllers; を追加。
- composer dump-autoload を実行。
composer dump-autoload
2. .env の変更が反映されない
原因
.env を編集しても変更が反映されないのは、キャッシュが影響している可能性が高いです。
解決策
- キャッシュをクリアする。
php artisan config:clear
php artisan cache:clear
- サーバーを再起動する。
php artisan serve --port=8000
3. マイグレーションエラー (`SQLSTATE[HY000] [1045] Access denied for user`)
原因
データベースの接続情報が間違っている可能性あり。
解決策
- .env の DB_HOST , DB_DATABASE , DB_USERNAME , DB_PASSWORD を確認。
- 変更後、以下のコマンドで設定を反映。
-
php artisan config:clearphp artisan migrate
-
- mysql -u ユーザー名 -p で手動ログインし、アクセス権限をチェック。
4. 419 Page Expired エラー
原因
CSRFトークンが送信されていないか、セッションが切れている可能性。
解決策
- フォームに @csrf を追加。
<form action="/submit" method="POST"> @csrf <input type="text" name="name"> <button type="submit">送信</button> </form>
- セッションをクリア。
php artisan session:clear
- config/session.php の SESSION_DRIVER を file に設定。
5. Route [xxxx] not defined.
原因
指定したルートが定義されていない可能性あり。
解決策
- routes/web.php や routes/api.php を確認。
- ルートを適切に記述。
Route::get('/dashboard', [DashboardController::class,'index'])->name('dashboard');
- ルートのキャッシュをクリア。
php artisan route:clear
まとめ
Laravelでよくあるエラーとその解決策を紹介しました。エラーが発生したら、
- .env 設定やキャッシュを確認
- コマンドを実行して設定を更新
- 公式ドキュメントもチェック
この流れで対応すれば、大体の問題は解決できます!