【发布时间】:2020-05-01 06:48:02
【问题描述】:
出于某种原因,这可能是我的错,Laravel 认为它应该在路径中寻找类 ApiController:'App\Http\Controllers\App\Http\Controllers',所以......它加倍,但我有不知道为什么。
这是一个全新的 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');
});
如您所见,我什至“导入”了控制器,但就是找不到。 就是这样,没有其他文件或项目更改。还尝试清除路由缓存和转储自动加载,但这并没有改变任何东西。
【问题讨论】:
-
大小写很重要 - 是否有一个名为
app/Http/Controllers/ApiController.php的文件?或者是APIController.php? -
为什么不直接使用 Route::get('/base', 'ApiController@base')->name('base');
-
我相信,
'uses' => ....添加默认命名空间。你可以这样做[ApiController::class , 'base']
标签: php laravel laravel-routing