Laravel8.Xからrouteの記述方法が変わって面倒になったかもしれません。(自分でも検証済み)
Laravel7.X以前→Laravel8.X以降はエラーになったと思ったが、解決した件。
route/web.php
Route::get('/', 'TestController@index');
laravel8.X以降はこのようにしないとうまく行かなかった。。
route/web.php
use App\Http\Controllers\TestController;
Route::get('/',[TestController::class, 'index']);
しかし、Laravel8でも、app/Providers/RouteServiceProvider.php の bootメソッドでnamespaceを指定すればこれまで通りの動作をすることがわかった。
(土日にも関わらず、疑問に対応いただいた私の上司に感謝。。)
app/Providers/RouteServiceProvider.php
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::middleware('web')
->namespace('App\Http\Controllers') ← 【これを足す】
->group(base_path('routes/web.php'));
Route::prefix('api')
->middleware('api')
->group(base_path('routes/api.php'));
});
}
これで今まで通り(Laravel7以前のようにルーティングがうまくいく)
routes/web.php
Route::get('/test', 'TestController@index');
以上