Fix Laravel 8 中出現 Target class controller does not exist

Fix Laravel 8 中出現 Target class controller does not exist


今天在練習Laravel 8時,照往常在api.php設定了Route沒想想到終端報了以下錯誤

Illuminate\Contracts\Container\BindingResolutionException Target class [AuthController] does not exist

我看了一下

Route::get(‘register’, ‘AuthController@register’);

沒有寫錯啊,直到我去查stack over flow才知道改了預設的寫法

官方網站上也有實作上的差異
Laravel 8.x Basic Routing

Laravel 7.x Basic Routing

在laravel 8中他把app\Providers\RouteServiceProvider中的

//protected $namespace = ‘App\Http\Controllers’;

給註解掉了

這使得我們在編寫時必須在route中使用use把我們使用的controller給引入

解法

如果你習慣使用舊的設計方式可以在

修改App\Providers\RouteServiceProvider:

// protected $namespace = 'App\\Http\\Controllers';

參考自:

Target class controller does not exist - Laravel 8

Target class does not exist. problem in laravel 8 [duplicate]