出于某种原因,Laravel认为它应该在路径‘App\Http\Controllers\App\Http\ ApiController’中查找类Http,所以...它是双倍的,但我不知道为什么。
这是一个全新的Laravel 6项目,我使用make:controller artisan命令创建了ApiController,并添加了一个函数,如下所示:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ApiController extends Controller
{
public function base() {
return 'This is a test function';
}
}然后,我向api路由添加了一个路由,如下所示:
use App\Http\Controllers\ApiController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::group(['prefix' => '/v1', 'as' => 'api'], function () {
Route::get('/base', ['uses' => ApiController::class . '@base'])->name('base');
});如你所见,我甚至“导入”了控制器,但它就是找不到它。仅此而已,没有其他文件或对项目的更改。我还尝试过清除路由缓存和dump-autoload,但这并没有改变任何事情。
发布于 2021-03-01 17:31:24
在我的例子中,问题是,在
,在使用路由时
命名空间
protected $namespace = 'App\Http\Controllers';在Laravel 8中,命名空间是
注释掉
,我从链中删除了命名空间,因为我的web路由没有完全迁移到Laravel 8语法,而我需要这个命名空间。
Route::prefix('api')
->middleware('api')
-̶>̶n̶a̶m̶e̶s̶p̶a̶c̶e̶(̶$̶t̶h̶i̶s̶-̶>̶n̶a̶m̶e̶s̶p̶a̶c̶e̶)̶
->group(base_path('routes/admin-api.php'));https://stackoverflow.com/questions/59735544
复制相似问题