Symfony\Component\HttpKernel\Exception\NotFoundHttpException
Laravelで存在しないルートにアクセスした際の404エラー
概要
Laravelで定義されていないURLにアクセスした際、またはRoute Model Bindingでモデルが見つからない場合に発生する例外です。HTTPステータス404(Not Found)を返します。
エラーメッセージ
Symfony\Component\HttpKernel\Exception\NotFoundHttpException
No query results for model [App\Models\User] 1
原因
- ルート未定義: リクエストされたURLに対応するルートがない
- HTTPメソッド不一致: GET/POSTなどのメソッドが異なる
- Route Model Binding: 指定されたIDのモデルが存在しない
- ミドルウェア: 認証ミドルウェアによるリダイレクト
- キャッシュ: 古いルートキャッシュが残っている
解決策
1. ルートを確認
| |
| |
2. HTTPメソッドを確認
| |
3. Route Model Bindingの対処
| |
4. ルートキャッシュをクリア
| |
5. 404ページをカスタマイズ
| |
6. 例外ハンドラで対処
| |
7. fallbackルートを設定
| |
8. APIリソースルートの確認
| |
よくある間違い
/users/と/usersの末尾スラッシュの不一致web.phpとapi.phpを混同Route::resourceで自動生成されるルートを把握していない.htaccessや nginx設定の問題でLaravelにリクエストが届いていない
関連エラー
参考リンク
Laravel の他のエラー
この記事は役に立ちましたか?