Target class controller not found laravel
How to solve error Target class controller not found in Laravel project
Here is How to solve error Target class controller not found in Laravel project
Target class [$NameController] does not exist.
It caused by newer Laravel (>L8) didn’t namespace the controller by default.
Solution 1
If you want to make it works like it used to
Go to RouteServiceProvider
file add namespace
variable and namespace method in both api and web
...
protected $namespace = 'App\Http\Controllers'; // <- add this variable
...
public function boot(): void
{
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});
$this->routes(function () {
Route::middleware('api')
->prefix('api')
->namespace($this->namespace) // <- add this
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace) // <- add this
->group(base_path('routes/web.php'));
});
}
Solution 2
If you only need it once, you can just add namespace at your controller when including it in routes
example
Route::get('/how/{unit}-to-{unit2}', 'App\Http\Controllers\ConverterController@convert');