結論から言うと、
旧
Route::get('/', 'XxController@index')->name('xx.index');
↓
新
Route::get('/', 'App\Http\Controllers\XxController@index')->name('xx.index');
このように変更すると解決します。緑文字部分のパスが必要になります。
---
もしくは、配列を使った書き方だと、比較的自然に書けます。
Route::get('/', [XxController::class, 'index'])->name('xx.index');
理由
なぜ旧だと、エラーが出るようになったのか
→ app/Providers/RouteServiceProvider.php で定義されていた、名前空間が削除されたから
なぜ、名前空間が削除されたのか
→ おそらく、配列を使った書き方が標準になったため
ちなみに
この変更は、既存プロジェクトのアップデートの場合は影響しません。(名前空間残っているので)
新規プロジェクトで、以前の書き方をすると、以下のようなエラーがでます。
cf.
Laravel8 新しいルーティングの書き方 - kawax.biz
コメント