我有一个Laravel 9的新安装,我试图在RouteServiceProvider中取消注解控制器命名空间。php.但是在我的API路由抛出一个错误:
Undefined class 'MainController'
我的控制器正确地放置在此命名空间下。
App\Http\Controllers
api.php文件是这样的。
Route::group(['prefix' => '/main'], function () {
Route::get('/', [MainController::class, 'index']);
});
控制器文件是这样的。
<?php
namespace App\Http\Controllers;
class MainController extends Controller
{
public function index()
{
return response()->json(['status'=>200,'message'=>'success']);
}
}
如果我将控制器文件导入API路由文件,它会正常工作。
3条答案
按热度按时间sqxo8psd1#
它仍然可以工作,只需添加以下内容到您的RouteServiceProvider。它已从最新版本中删除,但您可以重新添加。
然后,使您的 Boot 方法如下所示。
这就是你需要做的,然后它会再次工作。
4jb9z9bj2#
在路由文件Web中使用此。PHP
使用App\Http\Controller\MainController;
Route::get('/',[MainController::class,'index']);
egdjgwm83#
如果您在RouteServiceProvider中替换此代码。PHP
你在你的网站上使用了旧的方法。php,像这样:
那就行