Laravel8以降でルーティングがうまくいかない件
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');
以上
Author And Source
この問題について(Laravel8以降でルーティングがうまくいかない件), 我々は、より多くの情報をここで見つけました https://qiita.com/nagamoridaiki/items/12f2ff2a50ea4a13c84d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .