【やりたいこと】
Laravelで「web.php」に「/」もしくは「/index」にアクセスされた場合、PlayersControllerのindex メソッドを呼び出すようにしたいです。
【エラー内容】
Target class [App\Http\Controllers\PlayersController] does not exist.
【コード/環境】
・LaravelプロジェクトはMAMP/htdocs配下で作成
・Laravel 8.83.16
・PHP 7.4.21
-web.php-
php
1 2<?php 3 4use Illuminate\Support\Facades\Route; 5 6/* 7|-------------------------------------------------------------------------- 8| Web Routes 9|-------------------------------------------------------------------------- 10| 11| Here is where you can register web routes for your application. These 12| routes are loaded by the RouteServiceProvider within a group which 13| contains the "web" middleware group. Now create something great! 14| 15*/ 16 17//Route::get('/', function () { 18// return view('welcome'); 19//}); 20 21Route::get('/','PlayersController@index'); 22Route::get('/index','PlayersController@index');
-RouteServiceProvider.php-
php
1<?php 2 3namespace App\Providers; 4 5use Illuminate\Cache\RateLimiting\Limit; 6use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 7use Illuminate\Http\Request; 8use Illuminate\Support\Facades\RateLimiter; 9use Illuminate\Support\Facades\Route; 10 11class RouteServiceProvider extends ServiceProvider 12{ 13 /** 14 * The path to the "home" route for your application. 15 * 16 * This is used by Laravel authentication to redirect users after login. 17 * 18 * @var string 19 */ 20 public const HOME = '/home'; 21 22 /** 23 * The controller namespace for the application. 24 * 25 * When present, controller route declarations will automatically be prefixed with this namespace. 26 * 27 * @var string|null 28 */ 29 protected $namespace = 'App\\Http\\Controllers'; 30 31 /** 32 * Define your route model bindings, pattern filters, etc. 33 * 34 * @return void 35 */ 36 public function boot() 37 { 38 $this->configureRateLimiting(); 39 40 $this->routes(function () { 41 Route::prefix('api') 42 ->middleware('api') 43 ->namespace($this->namespace) 44 ->group(base_path('routes/api.php')); 45 46 Route::middleware('web') 47 ->namespace($this->namespace) 48 ->group(base_path('routes/web.php')); 49 }); 50 } 51 52 /** 53 * Configure the rate limiters for the application. 54 * 55 * @return void 56 */ 57 protected function configureRateLimiting() 58 { 59 RateLimiter::for('api', function (Request $request) { 60 return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); 61 }); 62 } 63}
-Controller.php-
php
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Foundation\Auth\Access\AuthorizesRequests; 6use Illuminate\Foundation\Bus\DispatchesJobs; 7use Illuminate\Foundation\Validation\ValidatesRequests; 8use Illuminate\Routing\Controller as BaseController; 9 10class Controller extends BaseController 11{ 12 use AuthorizesRequests, DispatchesJobs, ValidatesRequests; 13} 14 15class PlayersController extends Controller{ 16 17 function index(){ 18 echo 'test'; 19 } 20}
【やったこと】
原因はルーティングの記載方法、Laravelの不具合、スペルミスを疑い、以下の3つのことを行いました。
・web.phpでのルーティングの記述方法をいろいろ試す
(場合に応じてRouteServicePrivider.phpのprotected $namespace = 'App\Http\Controllers';をコメントアウトにする)
php
1use App\Http\Controllers\PlayersController;
php
1Route::get('/', [PlayersController::class, 'index']);
php
1Route::get('/', [ App\Http\Controllers\PlayersController::class, 'index'] );
php
1Route::get('/', 'App\Http\Controllers\PlayersController@index' );
・Laravelのキャッシュクリア、クラス再結成、パッケージ再インストール
zsh
1php artisan cache:clear 2php artisan config:clear 3php artisan route:clear 4php artisan view:clear 5php artisan event:clear 6php artisan clear-compiled 7 8composer dump-autoload 9 10composer install
・スペルミスを探す
上記のことを行ってもエラー解決につながらず、自分ではもう考えられる原因などがわからないのでどなたかご教授いただきたいです。
よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/06/22 12:53