【Laravel/エラー】Class App\Http\Controllers\App\Controllers\UserController does not exist

Laravel

エラー内容

Amazon Linux上で、Laravelプロジェクトを立ち上げる際にこんなエラーに遭遇しました。

Class App\Http\Controllers\App\Controllers\UserController does not exist

確認したこと

  • パス上に本当にそのファイルがあるか
  • ルート表記が間違っていないか

上記確認してみましたが、特に問題はありませんでした。

調べて分かったこと

私はLaravel8を利用していたのですが、Laravel8からはAPIのルートの書き方が変わっていたようです、、、!!!!

以下が変わった点↓

  • 使用するControllerはuseで呼び出しておく
  • Route::post/get以降の書き方

変更していきます

元々以下だったものを…

Route::post('/login', 'Api\Auth\UserLoginController@login')->name('login');
Route::post('/create_user', 'Api\UserController@create_user');

このように変更!

use App\Http\Controllers\API\UserController;

Route::post('/login', [UserLoginController::class, 'login'])->name('login');
Route::post('/create_user', [UserController::class, 'create_user']);

完了

これでエラーは解消されました。

ローカルでは古い書き方で動いていたので、逆に不思議ですが、一見落着です。

タイトルとURLをコピーしました