エラー内容
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']);
完了
これでエラーは解消されました。
ローカルでは古い書き方で動いていたので、逆に不思議ですが、一見落着です。