Laravel で Target class [Controller] does not exist.が出た時の対応
事象
最近のLaravel (多分v8以降とかそのあたり)では、初期状態で以下のようなコードをroutes/web.phpに記述すると、あるはずのController Classを見つけられずエラーが発生する。
Route::get('/hoge', 'Controller@index');
Illuminate\Contracts\Container\BindingResolutionException
Target class [Controller] does not exist.
http://laravel.internal/hoge
Illuminate\Container\Container::build
htdocs\laravel\vendor\laravel\framework\src\Illuminate\Container\Container.php:811
どうやらContollerの初期位置を見失うようになったらしい。
対応
App/Providers/RouteServiceProvider.php の$namespace
のコメントアウトを外す
/**
* The controller namespace for the application.
*
* When present, controller route declarations will automatically be prefixed with this namespace.
*
* @var string|null
*/
protected $namespace = 'App\\Http\\Controllers'; // ここがデフォルトでコメントアウトされるようになった
参考等
https://kawax.biz/laravel8-routing/
(ここまで書いて理由とか気になってググったらこのブログで全部解決していた)
Author And Source
この問題について(Laravel で Target class [Controller] does not exist.が出た時の対応), 我々は、より多くの情報をここで見つけました https://qiita.com/tsig/items/bef5e7611c69e93a573e著者帰属:元の著者の情報は、元の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 .