Lavarel8系のルーティングの記述が変わっている。
個人開発でやるときにどうせなら最新のlaravel8系で作っちゃおうとしたときにいきなりつまづいた笑
Route::resource('users', 'UsersController@index');
は、エラー
8では下記のようにする
Route::get('/users', [App\Http\Controllers\Api\UsersController::class, 'index']);
絶対パスを記入しなきゃあかんくなってる
どうしても前のに戻したいのなら app/Providers/RouteServiceProvider.php を変更する必要があり、コメントアウトされている
// protected $namespace = 'App\\Http\\Controllers'; <-これを外して有効にする
Route::resource('users', 'UsersController@index');
そしたら元のように使える👍
調べてたら
use App\Http\Controllers\UsersController; からの Route::get('/', [UsersController::class, 'index']);
って書き方もあるそうで,,,
彼が全部教えてくれた dev.to
あとどうして変更になったかざっくり調べたら、海外でこう言ってる人がいた。 you only need to import the class once.(unless using resources)
//Old Route::resource('photos', 'PhotoController'); Route::get('/user', 'UserController@index']); Route::post('/user', 'UserController@sore']); //New use App\Http\Controllers\PhotoController; use App\Http\Controllers\UserController; Route::resource('photos', PhotoController::class); Route::get('/user', [UserController::class, 'index']); Route::post('/user', [UserController::class, 'store']);
この場合だとリソースも減って、一回のインポートで済むからって事なのかな?
IDEのPhpStormが関係してるっぽい! こいつの性能が良くなっていることにより、それに合わせて使いやすくなるように変えてるっぽいとのこと!(だいぶ自信がないけど笑)
最後は話それたけどそういうことっぽい!(どういうこと?)
それでは!