Method App\Http\Controllers\AController:: xxx does not exist.の対処法(Laravel)

更新日:

Laravelで

BadMethodCallException
Method App\Http\Controllers\FormController::postimg does not exist.

のようなエラーが出た時の対処法を解説します。

これは、コントローラー上に、そんなメソッド(function xxx)が存在してないですよって言ってます。

原因は、

  • ルート設定が間違ってる
  • コントローラーのメソッド名にミスがある

などが考えられます。

 

ルート設定が間違ってる場合

例えば、routes\web.phpを開いて、

本当は、UploadController に飛ばすはずなのに、間違えてFormControllerを指定していたのように、コントローラー自体、もしくは、@の後のメソッド名自体が間違っていると、BadMethodCallというエラーが出ます。

まずは、ここが本当に間違ってないかをチェックしてみましょう。

 

コントローラーのメソッド名にミスがある

次に、実際に対応するコントローラーを開いてみます。

 

ルート側で、saveimg メソッドに飛ばすと設定したのに、それがコントローラーに無い、つまり、上の画像のように、saveimgなのに、savepostのようにfunction名(メソッド名)が間違ってると、このBadMethodCallエラーが出ます。

 

BadMethodCall つまり、「間違ったメソッド呼び出し」という事ですから、エラー文に出ているメソッド(funciton xxxの部分)に関連したどこかが間違って指定されているという事になります。

 

 

何をやってもエラーが直らない場合は、cdコマンドでLaravelプロジェクトフォルダに移動後

php artisan config:cache

php artisan route:clear

php artisan view:clear

などのキャッシュ削除コマンドをコマンドプロンプトから打ってブラウザを更新してみると直る場合もあるよ。

Neby

 

写真で血圧記録

  • この記事を書いた人

Neby

本を毎日多読しつつ、資産運用、プログラミング、心理学、ネットビジネススキルを猛向上中。貧富の差が広がる5年後、10年後に安心生活を送るためのお金のリテラシー、スキル、資産を一緒に作っていきましょう。

-PHP Laravel入門