关于 laravel 9 提示 Target *classController does not exist
关于 laravel 9 api 提示 Target class [App\\Http\\Controllers\\CaptchasController] does not exist
解决方法
1.打开app\Providers\RouteServiceProvider.php
修改如图
class RouteServiceProvider extends ServiceProvider
{
.
.
.
.
.
protected $namespace ='App\\Http\\Controllers';
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::middleware('api')
->prefix('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
});
}
}
2.打开app\Providers\RouteServiceProvider.php
修改如图
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
//use App\Http\Controllers\Api\CaptchasController;
Route::prefix('v1')
->name('api.v1.')
->namespace("Api")//添加命名空间
->group(function () {
Route::middleware('throttle:'.
config('api.rate_limits.sign'))
->group(function () {
// Route::post('captchas', [CaptchasController::class, 'store'])->name('captchas.store'); ---原来的
Route::post('captchas', 'CaptchasController@store')
->name('captchas.store');// 修改成这样即可
});
Route::middleware('throttle:' .config('api.rate_limits.access'))
->group(function () {
});
})
本作品采用《CC 协议》,转载必须注明作者和本文链接
这不是建议的写法,依然建议在 route 文件内直接声明具体的类。